2024年Clojure状态调查!中分享您的想法。

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

0
Spec
希望在检查的作用域内能够覆盖一个函数规范。

例如


(require '[clojure.spec.alpha :as s])
(require '[clojure.spec.test.alpha :as stest])

(defn a [x])

(s/fdef a
        :args (s/cat :x int?)
        :fn (fn [_] true))

(s/fdef b
        :args (s/cat :x int?)
        :fn (fn [_] false))

;; 应该通过
(stest/check `a)

(stest/instrument `a {:spec {`a `b}})
;; 应该失败
(stest/check `a)

;; 相似应失败的情况

(stest/instrument `a {:spec {`a (s/fspec :args (s/cat :x int?) :fn (fn [_] false))}})
(stest/check `a)

(stest/instrument `a {:spec {`a (s/get-spec `b)}})
(stest/check `a)

1 答案

0
参考:https://clojure.atlassian.net/browse/CLJ-2193 (来自 grzm 的报告)
...