首页 > 解决方案 > 错误:存根无法调用 arg,因为它尚未被调用

问题描述

我在我的一个测试中遇到了这个错误,我不明白它在 Sinon 的上下文中是什么意思。

我知道我的存根有问题,但什么是 Sinon 的“调用”?

谢谢

标签: node.jsmocha.jssinon

解决方案


由于您没有提供任何代码,并且由于这也发生在我身上,因此我将回答在我的上下文中有效的方法。

我们使用以下代码来测试控制器中的回调:

serviceStub
    .withArgs(1, 2, sinon.match.func)
    .callArgWith(2, null);

// Call the controller for testing
controller(1, 2);

这里的问题是callArgWith功能。此函数用于在已定义参数时调用参数(此处不是这种情况,因为控制器仅在此定义后调用)。

为了解决这个问题,调用的正确函数是callsArgWith(带有s),它只在定义后调用参数。

--

同样,我不确定这是否是您遇到的问题,但它会引发同样的错误,并且可能会帮助其他人解决同样的问题。


推荐阅读