javascript - 如何使用 sinon.stub() 仅对某个调用进行 stub

标签 javascript node.js unit-testing mocking sinon

我想 stub doSomething 来回调错误。但是,我只希望它在第一次响应时回调并出现错误。我想在第一次调用后恢复 stub

为了 stub 第一个调用,我可以这样做:

var stub = sinon.stub(someOjbect, "doSomething");
stub.onCall(0).callsArgWith(5, mockError);

如何在第一次调用后恢复 stub ?例如

stub.onCall(1).restore();

以上显然不起作用,只是想举一个我想要实现的目标的例子

最佳答案

我认为这只会 stub 第一个调用,但我不确定它是否适合您的用例:

var stub = sinon.stub(someObject, 'doSomething', function(args) {

  someObject.doSomething.restore();
  return mockData;
});

关于javascript - 如何使用 sinon.stub() 仅对某个调用进行 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275207/

相关文章:

javascript - 如何模拟在测试模块中导入的变量,它不是函数参数(使用 describe.each 并在每个测试更改模拟值时执行此操作)

javascript - ClojureScript 和 Cloud Firestore for Firebase 的兼容性

javascript - 在 Angular 中使用 ViewChild() 获取元素

unit-testing - 与 Jest 的竞争条件

c# - 在 C# 中,改进单元测试反馈循环的好方法是什么?

javascript - 尝试在 Mobile Safari 上调试 Javascript 但当 iPhone 插入 Mac 时 "Enable web inspector on device"在 Desktop Safari 中变灰

javascript - 在 Chrome 开发者工具中寻找特定的 javascript 变量值

javascript - 如何使用node js创建交互式控制台界面?

unit-testing - Moq - 如何对方法中引用的更改进行单元测试

php - 在 php 代码中使用 javascript 引号