gpt4 book ai didi

java - Clojure Speclj with-redefs 和来自不同线程的 stub

转载 作者:行者123 更新时间:2023-12-01 12:14:54 24 4
gpt4 key购买 nike

我正在测试一个函数,以确保它调用另一个命名空间中的函数。我想将函数 stub (使用 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 在另一个命名空间中 stub 函数?

编辑:当从不同的线程调用 stub 函数时会发生异常。我创建了一个pull request这解决了问题。

最佳答案

我编写了您的示例,并且规范运行良好;没有错误就通过了。我想不出在另一个命名空间中 stub fns 不起作用的原因。我一直这样做。

这是展示我的工作的要点:https://gist.github.com/slagyr/2aed1ccfd8ec702d7051

关于java - Clojure Speclj with-redefs 和来自不同线程的 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com