请在2024年Clojure调研问卷!中分享您的想法。

欢迎!请查看关于页面以了解更多有关此功能的信息。

0
Spec
我期望“explain-data”应包含相同的“via”条目,无论它是从调用s/explain-data返回还是如果它在断言失败期间传递给打印机。

重现


(s/check-asserts true)
  
  (s/def :example/name string?)
  (def !ed (atom nil))


  (s/explain-data :example/name 1)
  ;; #:clojure.spec.alpha{:problems [{:path [], :pred clojure.core/string?, :val 1, :via [:example/name], :in []}], :spec :example/name, :value 1}


  (try
    (binding [s/*explain-out* (fn [ed]
                                (reset! !ed ed)
                                "captured")]
      (s/assert :example/name 1))
    (catch Exception e))

  @!ed
  ;; #:clojure.spec.alpha{:problems [{:path [], :pred clojure.core/string?, :val 1, :via [], :in []}], :spec :example/name, :value 1, :failure :assertion-failed}


预期:两种情况下的“:via”条目都应相同
实际:在断言失败期间传递给打印机的explain-data中的“:via”条目为空。

1 答案

0
...