Динамически рассчитанное описание факта midje
Я хочу написать функцию, чтобы выделить некоторые общие факты, как это
(defn check-odd-and-positive
[n]
(fact (str n " not odd") n => odd?)
(fact (str n " not positive") n => positive?))
(facts "about the answer"
(check-odd-and-positive 42))
Но это не приводит к "42 не странным" как описание факта. Я знаю, что подобный эффект может быть достигнут с помощью табличных фактов, но я хочу иметь возможность поделиться таким фактом среди групп фактов.
2 ответа
Решение
Я обнаружил, что это довольно просто с метаданными, начиная с 1.6
(fact {:midje/description (str n "not odd")} n => odd?)
Вы можете пойти с макросом здесь
(defmacro check-odd-and-positive [n]
`(fact ~(str n " not odd") n => odd?)
`(fact ~(str n " not positive" n => positive?))
Тем не менее, midje включает проверенное значение в отчет, поэтому я не могу четко понять, почему это вообще необходимо.