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