【发布时间】:2015-07-01 08:45:44
【问题描述】:
如果我有一个需要 2 个回调的函数的存根,我如何连接 sinon.js 以在调用存根函数时调用两个回调?
例如 - 这是我想要存根的函数,它需要 2 个函数作为参数:
function stubThisThing(one, two) {
... one and two are functions ...
... contents stubbed by sinon.js ...
}
我可以使用 sinon 来调用任一参数:
stubbedThing.callsArg(0);
或
stubbedThing.callsArg(1);
但我似乎无法同时调用两者。如果我尝试:
stubbedThing.callsArg(0).callsArg(1);
或
stubbedThing.callsArg(0);
stubbedThing.callsArg(1);
那么 sinon 只会调用第二个参数。如果我按其他顺序连接它,那么 sinon 将调用第一个 arg。但是,我希望两者都被一个接一个地调用。
【问题讨论】:
-
你检查过
calledWith方法 -
@Pawan - 你是指来自间谍 API 的
calledWith函数吗?这真的不是我要找的。我想改变存根的行为。 -
sinon.js 仅支持每次调用每个存根最多调用一个回调。它可以在多个调用中调用多个回调,例如。
stubbedThing.onCall(0).callsArg(0); stubbedThing.onCall(1).callsArg(1);。或者您可以在调用stubbedThing后手动callArg:例如stubbedThing(firstArg, secondArg); stubbedThing.callArg(0); //calls firstArgs; stubbedThing.callArg(1) // calls secondArg -
@serg10:你为什么不把这个问题放在他们的 github 上作为一个问题,可能他们会想出一些东西..
标签: javascript stub sinon