Sinon function stubbing: How to call “own” function inside module

耗尽温柔 提交于 2019-12-17 19:50:11

问题


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()?


回答1:


You can refactor your module a little. Like this.

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

module.expors = service;

function myFunction(){};

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


来源:https://stackoverflow.com/questions/35162659/sinon-function-stubbing-how-to-call-own-function-inside-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!