如何在 SinonJS 中的模拟方法上存根 return 值

How to stub the return value on a mocked method in SinonJS

我想做如下事情:

sinon.mock(obj)
.expects('func')
.atLeast(1)
.withArgs(args)
.returns(somePredefinedReturnValue);

我期望包括 withArgs 在内的所有内容,但是我需要存根方法的 return 值,以便当它 returns 时它不会破坏其余的被测方法内的执行流程。

我这样做的原因是因为我发现我的一些 REST 端点测试将在它们真正应该失败的时候默默地通过,如果一个带有回调的存根方法没有在其中包含断言被叫到。我正在尝试验证是否确实调用了这些回调,以便我的测试不会给出误报。

在官方文档中 http://sinonjs.org/docs/#stubs

var stub = sinon.stub(object, "method", func);

您可以传递一个 returns 您想要的值的函数参数。

编辑:

这已从 v3.0.0 中删除。相反,你应该使用

stub(obj, 'meth').callsFake(fn)