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