alsdkjasdlkja
alsdkjasdlkja

Reputation: 1298

Sinon function stubbing: How to call "own" function inside module

I am writing some unit tests for node.js code and I use Sinon to stub function calls via

var myFunction = sinon.stub(nodeModule, 'myFunction');
myFunction.returns('mock answer');

The nodeModule would look like this

module.exports = {
  myFunction: myFunction,
  anotherF: anotherF
}

function myFunction() {

}

function anotherF() {
  myFunction();
}

Mocking works obviously for use cases like nodeModule.myFunction(), but I am wondering how can I mock the myFunction() call inside anotherF() when called with nodeModule.anotherF()?

Upvotes: 12

Views: 5179

Answers (1)

Yury Tarabanko
Yury Tarabanko

Reputation: 45121

You can refactor your module a little. Like this.

var service = {
   myFunction: myFunction,
   anotherFunction: anotherFunction
}

module.exports = service;

function myFunction(){};

function anotherFunction() {
   service.myFunction(); //calls whatever there is right now
}

Upvotes: 12

Related Questions