测试 – 如何在clojure期望中实现灯具?

我最近开始使用Clojure测试框架的期望.作为测试的一部分,我有一个数据集,我希望在新的测试/期望语句开始之前将其重置为其原始值.

在clojure.test中,我只是创建一个fixture并调用(use-fixture:each my-fixture-fn).

我已经搜索了如何在期望中做到这一点的好例子,但还没有运气.任何人都可以提供一个具体的例子来说明如何实现在每次测试之前运行的夹具吗?

最佳答案 可以使用带有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
点赞