Есть ли способ переопределить генератор для основной функции предиката при вызове clojure.spec.test.alpha/check
?
Возможно переопределить генератор предикатов по пути внутри s/gen
:
(gen/generate
(s/gen
(s/cat :s string?)
{[:s] #(gen/return "xyz")}))
Но эта опция не существует для test/check
:
(defn xyz [s] s)
(s/fdef xyz
:args (s/cat :s string?)
:ret string?)
;; throws
(test/check
`xyz
{:gen {[:args :s] #(gen/return "xyz")}})
Необходимо указать имя или символ, но как называется для спецификации string?
? Я пытался использовать символы, оба "строки? и `строка? но это тоже не сработало.
Переопределение генератора путем переноса string?
с s/with-gen
внутри s/fdef
приводит к отображению кода генератора внутри документации функции ..., что влияет на читабельность imo.
Определение новой спецификации ::string
просто для этой цели не подходит.