Wenn ich den folgenden Datensatz definiert:Clojure spec und Plattenbauer
(defrecord Person [name id])
und die folgende:
(s/def ::name string?)
(s/def ::id int?)
(s/def ::person (s/keys :req-un [::name ::id]))
Wie kann ich sicherstellen, dass Sie nicht eine Person erstellen können, die den Anforderungen nicht entspricht zur :: person spec? Mit anderen Worten, sollte die folgende Ausnahme aus:
(->Person "Fred" "3")
Ich habe versucht:
(s/fdef ->Person :ret ::person)
aber ruft:
(->Person "Fred" "3")
keine Ausnahme ausgelöst.
jedoch:
(s/conform ::person (->Person "Fred" "3"))
hat ergeben die erwartete:
:clojure.spec/invalid
Dank