我想知道sinon.js是否有可能只将一个方法存根一次?
例如:
sinon.stub(module, 'randomFunction', 'returnValue/function');
在我的测试中,这个module.randomFunction将在同一个测试中被多次调用,但我只希望存根触发一次然后恢复它以使函数恢复其正常行为.
模拟真实代码:
myModule.putItem(item, function (err, data) {
if (err) {
// do stuff
return callback();
} else {
// do other stuff
return callback(null, data);
}
});
我第一次想要触发错误,有时我只是想让它继续真正的流程.
这在sinon有可能吗?
亲切的问候,
吉米
编辑:根据@Grimurd的回答,我发布了一个针对我的问题找到的解决方案
解决方法:
解:
sandbox.stub(module, 'putItem')
.onFirstCall().yields('ERROR')
.onSecondCall().yields(null, item)
根据@grimurd的答案,我设法让它与’收益’一起工作. Yields触发它在原始方法签名中找到的第一个回调函数.
所以在第一次调用时我基本上说回调(‘错误’),在第二次调用时我说回调(null,item).
不知何故,我确实想知道回调是否比一个更好的方法名称;)
谢谢你的回答!