7
我想写定义为private的函数的单元测试,使用defn-。我怎样才能做到这一点?如何编写私人clojure函数的单元测试?
我想写定义为private的函数的单元测试,使用defn-。我怎样才能做到这一点?如何编写私人clojure函数的单元测试?
事实证明,您可以使用reader宏#'或var引用要测试的私有函数。如果私有函数是在命名空间AB,并命名为C:
(ns a.b-test
(:use
[clojure test]))
(deftest a-private-function-test
(testing "a private function"
(let [fun #'a.b/c]
(is (not (fun nil))))))
使用语法'#'AB/D'是'(VAR AB/d)'快捷方式,与返回‘VAR’,这指向“功能”'ab/d'。当Clojure看到该变量时,它会在评估之前自动替换该函数。我发现这个(大多数是无证的)行为已经好几年了。 –
@AnnThompson Huh,看起来像'clojure.lang.Var'实现'IFn'。我不知道。我想这会让你有一定的感觉...... –
那种悲伤,私人被修补在clojure那样 – matanster