我正在测试一个函数以确保它调用另一个命名空间中的函数。我想将函数存根(使用speclj stub),所以我可以记录调用。
(defn fn-under-test []
(p/helper-fn))
(describe "test"
(with-stubs)
(around [it]
(with-redefs [p/helper-fn (stub :helper)]
(it)))
(it "should call the helper-fn"
(fn-under-test)
(should-have-invoked :helper {:times 1})))
我得到一个例外:
java.lang.Exception: Stub recoding not bound. Please add (with-stubs) to the decribe/context.
如果helper-fn
在当前命名空间中定义,一切都按预期工作。如何使用 speclj 存根另一个命名空间中的函数?
编辑:当从不同的线程调用存根函数时会发生异常。我创建了一个解决问题的拉取请求。