1

我正在尝试替换 中的stacktrace-file-and-line(私有)函数clojure.test,但是with-redefs-fn在运行测试时使用似乎没有效果。当我执行以下代码时,stacktrace-file-and-line调用的是原始代码而不是我的匿名函数。

(with-redefs-fn 
 {#'clojure.test/stacktrace-file-and-line (fn [stacktrace] {:file "foo.clj" :line 1})}
 #(clojure.test/run-tests 'repl-test.core-test))

with-redefs-fn不适用于私有函数,或者命名空间是否存在阻止其工作的东西clojure.test

4

1 回答 1

2

我怀疑它是用直接链接clojure.test编译的,因此会导致它不起作用。with-redefs-fnwith-redefs

于 2017-03-25T21:23:11.640 回答