繁体   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