对中等事实的动态计算描述



我想写一个函数来提出一些常见的事实,像这样

(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不奇数"作为对事实的描述。我知道表格事实也可以达到类似的效果,但我希望能够在事实组之间共享这样的事实。

我发现,这是相当简单的元数据作为midje1.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在报告中包含了测试的值,所以我不清楚为什么这是必要的

最新更新