Есть ли способ переопределить генератор для основной функции предиката при вызове 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? и `строка? но это тоже не сработало.
Переопределение генератора путем переноса string?
на s/with-gen
внутри s/fdef
приводит к тому, что код генератора отображается внутри документов функции... что влияет на читабельность imo.
Определение новой спецификации ::string
только для этой цели кажется неправильным.