我无法删除clojure.test
测试中的重复。
假设我对同一个抽象有多个实现:
(defn foo1 [] ,,,)
(defn foo2 [] ,,,)
(defn foo3 [] ,,,)
而且我还有一个测试所有实现都应该通过:
(defn test-impl [foo]
(is (= ,,, (foo))))
我现在可以创建一个clojure.test
测试,在一个步骤中检查所有实现:
(deftest test-all-impls
(test-impl foo1)
(test-impl foo2)
(test-impl foo3))
一切都很好; 在 REPL 中运行测试我得到:
(run-tests)
Testing user
Ran 1 tests containing 3 assertions.
0 failures, 0 errors.
=> {:test 1, :pass 3, :fail 0, :error 0, :type :summary}
我现在想修改以消除必须为每个实现显式test-all-impls
调用的重复。test-impl
我想到要修改test-all-impls
如下:
(deftest test-all-impls
(for [foo [foo1 foo2 foo3]] (test-impl foo))
嗯,现在并非一切都好;在 REPL 我得到:
(run-tests)
Testing user
Ran 1 tests containing 0 assertions.
0 failures, 0 errors.
=> {:test 1, :pass 0, :fail 0, :error 0, :type :summary}
我错过了什么?