如何在 clojure 期望中实现固定装置?

How to implement fixtures in clojure expectations?

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

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

我已经搜索了如何在期望中执行此操作的好示例,但还没有找到任何运气。谁能提供一个具体示例,说明如何实现在每次测试之前运行的夹具?

可以将 let 语句与 expect 一起使用。也许像这样的东西可以为你完成工作(未经测试的伪代码):

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

这段开箱即用的真实代码展示了原理:

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

它 returns 如预期的那样出现以下错误消息:

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