2015-11-03 25 views
4

我最近開始使用Clojure測試框架期望。作爲我的測試的一部分,我有一個數據集,我希望在新的測試/期望語句開始之前重置爲其原始值。如何在clojure期望中實現夾具?

在clojure.test中,我只需創建一個燈具並調用(use-fixtures:each my-fixture-fn)。

我已經搜索瞭如何在期望中做到這一點,但還沒有任何運氣的好例子。任何人都可以提供一個具體的例子來說明如何在每次測試之前執行一個預期的夾具嗎?

回答

1

可以使用帶有expect的let語句。也許這樣的事情會爲你做這項工作(未經測試的僞代碼):

(expect 
(let [dataset {val: "original values"}] 
    (function-to-be-tested val:)) 
expected-return-value) 

這種實時代碼開箱的顯示原理:

(expect (let [ar [1 2 3]] 
    (first ar)) 2) 

它返回以下錯誤消息,如預期:

failure in (core_test.clj:9) : image-lib.core-test 
(expect (let [ar [1 2 3]] (first ar)) 2) 

     expected: 1 
      was: 2 

Ran 2 tests containing 2 assertions in 17 msecs 
1 failures, 0 errors. 
Tests completed at 10:59:45.435 
+0

Thanks lain。我在源代碼中挖掘後發現了(expect-let)fn,但沒有想到像夾具一樣使用(let)fn。這有很大幫助! –