【发布时间】:2016-03-15 02:58:55
【问题描述】:
lein test 在测试使用(resolve (symbol "a-fn")) 返回函数a-fn 的函数时抛出NullPointerException。测试从 REPL 运行良好。
如果确实是问题所在,我无法在 leiningen 的测试套件中找到解决 a-fn 的方法。
我通过lein new my-resolve 创建了一个名为 my-resolve 的 Leiningen 项目,并为它们添加了两个函数和测试:
src/my_resolve/core.clj:
(ns my-resolve.core)
(defn a-fn [] "From a-fn")
(defn my-resolve [] (resolve (symbol "a-fn")))
test/my_resolve/core_test.clj:
(ns my-resolve.core-test
(:require [clojure.test :refer :all]
[my-resolve.core :refer :all]))
;; Passes
(deftest a-fn-test
(testing "a-fn"
(is (= (a-fn)
"From a-fn"))))
;; my-resolve-test behaves correctly in the REPL (the test passes,
;; returns nil) but throws a NullPointerException when called from
;; lein test.
(deftest my-resolve-test
(testing "my-resolve"
(is (= ((my-resolve))
"From a-fn"))))
谢谢。
【问题讨论】: