我正在使用一个看起来像这样的规范:
(ns blah
(:require [clojure.spec.alpha :as s]
[clojure.spec.gen.alpha :as gen]))
(s/def ::user
(s/with-gen
(s/and string? #(re-matches #"^[a-zA-Z]{3,20}$" %))
#(gen/string-alphanumeric)))
它在生成示例时工作正常,尽管经常达到 100 次尝试的限制。我真的想要一个gen/string-alpha
,虽然这个生成器不可用。
当我尝试做到这一点时:
#(gen/fmap clojure.string/join (gen/vector gen/char-alpha 3 20))
...它说“向量的第一个参数必须是生成器”。
为什么gen/char-alpha
(指向 clojure.test.check.generators
)不起作用?