簡體   English   中英

如何設置clojureScript項目以使用規范並在運行時測試clojure.core函數?

[英]How do I set up a clojureScript project to use specs and test the clojure.core functions at runtime?

Clojure 1.9引入了規范 clojure.core庫中的函數現在有規格。 如何設置clojurescript項目以使用規范並在運行時測試clojure.core函數?

我使用庫[org.clojure/test.check "0.10.0-alpha2"][org.clojure/spec.alpha "0.1.123"]來安裝specs和命令instrument 它可以檢測我編寫規范的函數中的問題。 但它沒有檢測到clojure.core問題(例如, map )。

也許specs不適用於clojurescript。

這是因為沒有針對clojure.core函數的規范,只有幾個宏的規范 - 請看這里: https//github.com/clojure/core.specs.alpha/blob/master/src/main/clojure/ Clojure的/核心/規格/ alpha.clj#L53

注意:

宏擴展期間始終檢查宏,您無需為宏規范調用儀器

https://clojure.org/guides/spec#_macros

您可以為核心函數編寫自己的規范並注冊它們,如下所示: https//clojure.github.io/clojure/branch-master/clojure.spec-api.html#clojure.spec/fdef

(s/fdef clojure.core/symbol
  :args (s/alt :separate (s/cat :ns string? :n string?)
               :str string?
               :sym symbol?)
  :ret symbol?)

但是,要小心這一點,因為如果你沒有把它弄好,你可能會遇到令人討厭的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM