在这个问题和那里引用的博客文章之后,有没有理由prop/for-all
不直接加入这种能力?例如:
(require '[clojure.test.check.generators :as gen])
(require '[clojure.test.check.properties :as prop])
(require '[clojure.test.check.clojure-test :refer :all])
(defspec some-props-test
(prop/for-all [n (gen/choose 1 10)
v (gen/vector gen/int n) ;; treat n like its produced value
e (gen/element v)]
... do stuff with n, v & e ...
))
基本上,我想在另一个生成器中重用一个生成器生成的值,然后引用实际测试代码中生成的两个值。这将本质上扩展糖/魔术,for-all
以允许在宏提供的 let-like 块中引用生成的值,因为它在下面的表达式块中工作。
请让我知道我是否遗漏了其他使这成为可能的东西,或者由于某种原因实施起来没有意义。