我正在Clojure中编写一些测试,我想知道是否从其他命名空间中的其他def看到了defn中的deftest / deftest。我也倾向于认为这是一种不好的做法,并且有一种更惯用的方式来共享测试功能(例如,创建模拟)。在那儿?

目前,定义:

(deftest tests

  (defn- mock-element
  [is-valid]
    (reify...


不会在名称空间之外公开模拟元素,否则我做错了。
有没有办法做到这一点?

最佳答案

def始终是全局的:如果要在本地使用,请使用letletfn

(deftest tests
  (letfn [(mock-element [is-valid]
            (reify...)]
    ...))

10-05 18:49