有一个文件helperFunction.js,如下所示:
module.exports = (arg1, arg2) => {
\\function body
}
现在,在file.js中,可以通过以下方式简单地调用此函数:
let helperFunction = require('./helperFunction.js');
//some code here
let a=1, b=2;
let val = helperFunction(a,b);
//some code here
为了测试file.js,我想对helperFunction进行存根。但是,sinon.stub的语法如下:
let functionStub = sinon.stub(file, "functionName");
在这里,我的文件名本身就是函数名。现在如何为helperFunction创建存根?还是我还能做些什么?
最佳答案
您可以使用类似proxyquire的库,该库可用于在测试期间覆盖依赖关系。
那将意味着您最终将得到如下结果:
const helper = sinon.stub();
const moduleToTest = proxyquire('./your-file-name’, {
'./helperFunction': helper,
});
尽管如果您不想添加新的库,则始终可以切换到重构
helperFunction.js
文件,然后将函数作为命名导出而不是默认导出导出。这将为您提供一个对象,该对象具有您需要存根的方法,并且非常适合您当前的方法