Уроки Python связывают простые тесты с исходным кодом (в Python они находятся в документации по функциям). More info and examples here.Clojure эквивалент доктрины Python?
Есть ли что-то подобное для Clojure?
Я знаю модульные тесты с clojure.test
, но ищет что-то более тесно интегрированное с источником (как правило, модульные тесты находятся в разных файлах, здесь я хочу провести тест «внутри» defn
).
Поиск около найденного this, но кажется очень неудобным (тесты в реальном тексте, такие как Python - наверняка макрос, который расширяет defn
, был бы предпочтительнее?).
Возможно, существует еще один способ решить общую проблему, которая заключается в том, что у меня есть некоторые тесты (обычно простые вещи, которые демонстрируют основные свойства функции), которые будут лучше включены в документацию (я использую marginalia) чем в отдельных тестовых файлах.
update Вот пример: У меня есть функция, которая вычисляет (манхэттенское) расстояние (в пикселях) от прямоугольника пикселей до центра изображения. Это звучит просто, но усложняется такими вещами, как разница в значении «центра» для изображений с нечетным или четным числом пикселей по сторонам или с какой частью блока вы измеряете. Поэтому мне пришлось написать несколько тестов, чтобы получить код прямо. И теперь я смотрю на документы, и на самом деле было бы лучше, если бы документы включали эти тесты, потому что они объясняли лучше, чем слова, что делает функция ...
выглядит идеально! понятия не имел, что существует. но как вы его запускаете? это тест лейн? –
использовать функцию тестирования: (test # 'mymax), doc: http://clojuredocs.org/clojure_core/clojure.core/test –