javascript – Sinon.js,只有一个方法一次?

我想知道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).

不知何故,我确实想知道回调是否比一个更好的方法名称;)

谢谢你的回答!

上一篇:Dubbo+Zookeeper


下一篇:OSPF的stub、完全stub及NSSA区域的理解