我正在为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(); }
对于像nodeModule.myFunction()这样的用例,Mocking显然有用,但是我想知道如何在用nodeModule.anotherF()调用时模拟anotherF()中的myFunction()调用?
解决方法
你可以稍微重构一下你的模块.喜欢这个.
var service = { myFunction: myFunction,anotherFunction: anotherFunction } module.expors = service; function myFunction(){}; function anotherFunction() { service.myFunction(); //calls whatever there is right Now }