Что такое Generative Unit Test Framework?

В stackoverflow я столкнулся с mbunit. На его странице указано, что mbunit является генеративной структурой unit test, но я не могу найти нигде, что описывает структуру Generative unit test.

Я надеялся получить:

  • Определение
  • Ссылки на статьи о том, что представляет собой Generative unit test.

Ответы

Ответ 1

Генерирующая среда тестирования - это та, где сам код генерирует тестовые примеры.

Обычно вы пишете код для генерации тестовых примеров в соответствии с одним или несколькими предположениями, которые вы хотели бы проверить.

Я не знаком с mbunit, но, например, с помощью Clojure генеративной тестовой среды test.generative вы можете писать тесты, например

(defspec integers-closed-over-addition
  (fn [a b] (+' a b))                    ;; input fn
  [^long a ^long b]                      ;; input spec
  (assert (integer? %)))                 ;; 0 or more validator forms

Этот тест напрямую определяет предположение, которое вы хотите проверить (то есть, что добавление двух длин всегда приводит к целому числу).

Важным моментом является то, что вам не нужно указывать конкретные значения long для тестирования - сама фрейм будет генерировать произвольные комбинации входов и проверять, что ваши утверждения верны в каждом случае.