0
如果我的测试设置中的任何步骤失败,我想将此报告为失败,并停止当前deftest
块(或当前名称空间)中的任何后续测试。现在的一种方式做到这一点:对clojure中的谓词失败进行失败并停止测试。
(if some-condition-is-ok
(do
... do tests)
(is (= 1 0) "Failure, condition not met")
以上:
- 报告失败,如果
some-condition-is-ok
不满足 - 不运行任何测试,因为设置条件不成立
除了它不流畅,并且不适合多种条件。我喜欢这样的东西:
(let [;; setup here...]
(assert-or-stop-tests some-condition-is-ok)
... continue with tests here
任何想法在干净的方式做到这一点?
这似乎是一个不错的人选,因为它除了clojure核心之外没有任何依赖,尽管我仍然不喜欢':let'绑定外观。 Upvoting,因为这是一个合理的选择,谢谢你的回答山姆 – Josh
@Josh我已经更新了我的答案,以解决你的两个意见。以前它确实具有Clojure核心以外的依赖关系(即,更好的cond),但是我已经改写了“停止”宏而没有更好的cond,并且删除了“:let”绑定。 –
谢谢萨姆 - 我会留下一点点以鼓励其他答案,但希望继续并感谢您修改它 – Josh