_评论由 akiel 提出_
我遇到了另一个与此问题相关的情况。无法测试适用于 conformer 的谓词的返回值,因为它应该返回 {{:clojure.spec/invalid}} 本身。
(ns coerce
(:require [clojure.spec :as s]))
(s/fdef parse-long
:args (s/cat :s (s/nilable string?))
:ret (s/or :val int? :err #{::s/invalid}))
(defn parse-long [s]
(try
(Long/parseLong s)
(catch Exception _
::s/invalid)))