2015-11-03 42 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。这有很大帮助! –