Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I want to do something like the following:

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

Where I expect everything up to and including withArgs, but then I need to stub the return value of the method so that when it returns it doesn't break the rest of the execution flow within the method under test.

The reason I'm doing this is because I found out that some of my REST endpoint tests will silently pass when they should really be failing if a stubbed method with a callback that has an assertion inside of it doesn't get called. I'm trying to verify that these callbacks are actually getting called so that my tests don't give false positives.

like image 386
josiah Avatar asked Oct 31 '22 09:10

josiah


1 Answers

In the official docs http://sinonjs.org/docs/#stubs

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

You could pass a function argument that returns your desired value.

EDIT:

This has been removed from v3.0.0. Instead you should use

stub(obj, 'meth').callsFake(fn)
like image 75
ZabdiAG Avatar answered Nov 09 '22 12:11

ZabdiAG