Что такое основа модульного тестирования? - PullRequest
14 голосов
/ 19 февраля 2009

На стеке потока я наткнулся на mbunit. На его странице говорится, что mbunit - это структура генеративных модульных тестов, но я не могу найти нигде, описывающих, что такое среда генеративных модульных тестов.

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

  • Определение
  • Ссылки на статьи о том, что такое инфраструктура Generative Unit Test, а что нет.

1 Ответ

22 голосов
/ 09 августа 2012

Среда генеративного тестирования - это та, в которой сам код создает тестовые случаи .

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

Я не знаком с самим 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 значения для тестирования - сама структура генерирует произвольные комбинации входных данных и проверяет, верны ли ваши утверждения в каждом случае.

...