【问题标题】:How to stub the return value on a mocked method in SinonJS如何在 SinonJS 中对模拟方法的返回值进行存根
【发布时间】:2015-04-30 09:35:53
【问题描述】:

我想做如下的事情:

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

我希望一切都达到并包括 withArgs,但是我需要存根方法的返回值,以便在它返回时不会破坏被测方法中的其余执行流程。

我这样做的原因是因为我发现我的一些 REST 端点测试会静默通过,而当它们真的失败时,如果带有内部断言的回调的存根方法没有被调用.我正在尝试验证这些回调实际上是否被调用,以便我的测试不会给出误报。

【问题讨论】:

标签: javascript node.js asynchronous callback sinon


【解决方案1】:

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

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

您可以传递一个返回所需值的函数参数。

编辑:

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

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

【讨论】:

  • 这个答案有点过时了,因为v3.0.0 你应该使用 callsFake 来这样做,比如:var stub = sinon.stub(object, "method").callsFake(func); Reference here
  • 编辑对我来说看起来不错!具体问题是询问模拟,而不是存根,但 callsFake 也适用于模拟。
猜你喜欢
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多