Я предпочитаю ожидания или clojure.test
с гуманным тест-выводом .Обе опции дают наиболее читаемые ошибки и обеспечивают довольно минимальный синтаксис.
пример clojure.test
При выполнении следующего теста вы получите следующий вывод:
(deftest map-comparisons
(is (= {:sheep 1} {:cheese 1 :sheep 1})))
По умолчаниювывод clojure.test
FAIL in (map-comparisons) (map_test.clj:5)
expected: (= {:sheep 1} {:cheese 1, :sheep 1})
actual: (not (= {:sheep 1} {:cheese 1, :sheep 1}))
Пример вывода clojure.test с гуманным тест-выводом
FAIL in (map-comparisons) (map_test.clj:5)
expected: {:sheep 1}
actual: {:cheese 1, :sheep 1}
diff: + {:cheese 1}
пример ожиданий
Тест выглядит следующим образом:
(expect {:sheep 1} {:sheep 1, :cheese 1})
вывод ожиданий
failure in (map_expectations.clj:6) : example.map-expectations
(expect {:sheep 1} {:sheep 1, :cheese 1})
expected: {:sheep 1}
was: {:cheese 1, :sheep 1}
in expected, not actual: null
in actual, not expected: {:cheese 1}
Я провел более подробное сравнение выходных данных четырех основных библиотек тестирования Clojure, и их можно найти здесь .