我正在为node.js代码编写一些单元测试,我使用Sinon通过
来存根函数调用var myFunction = sinon.stub(nodeModule, 'myFunction');
myFunction.returns('mock answer');
nodeModule
看起来像这样
module.exports = {
myFunction: myFunction,
anotherF: anotherF
}
function myFunction() {
}
function anotherF() {
myFunction();
}
Mocking显然适用于像nodeModule.myFunction()
这样的用例,但是我想知道如何在用nodeModule.anotherF()
调用时模拟anotherF()中的myFunction()调用?
答案 0 :(得分:9)
您可以稍微重构一下您的模块。像这样。
var service = {
myFunction: myFunction,
anotherFunction: anotherFunction
}
module.expors = service;
function myFunction(){};
function anotherFunction() {
service.myFunction(); //calls whatever there is right now
}