我正在Clojure中编写一些测试,我想知道是否从其他命名空间中的其他def
看到了defn
中的deftest
/ deftest
。我也倾向于认为这是一种不好的做法,并且有一种更惯用的方式来共享测试功能(例如,创建模拟)。在那儿?
目前,定义:
(deftest tests
(defn- mock-element
[is-valid]
(reify...
不会在名称空间之外公开模拟元素,否则我做错了。
有没有办法做到这一点?
最佳答案
def
始终是全局的:如果要在本地使用,请使用let
或letfn
:
(deftest tests
(letfn [(mock-element [is-valid]
(reify...)]
...))