4

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

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

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

4

1 回答 1

1

可以将 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)

它按预期返回以下错误消息:

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
于 2016-01-06T04:05:37.690 回答