如何解决单元测试-模拟方法中引用的配置文件
我正在尝试测试一种方法,该方法包含对包含从json文件获取的一些配置的全局变量的引用。
async function methodToTest(var1,var2,var3) {
const functionName = 'methodToTest';
//guards here
try {
if ((var1 === 0 || var2 === 0 || var3 < config.prop1.pro1_child) {
return false;
}
return true;
}
这是测试,正在serviceConfig所需的配置json文件:
const rewire = require('rewire');
const filetoBeTested = rewire(`${ __base }methods/fileContainingMethodToTest`);
describe('Testing methodToTest',function () {
it('Should return false if var1 = 0 or var2 = 0 or var3 < configured value',async function () {
const var1 = '0';
const var2 = '1';
const var3 = '400';
const expectedResponse = false;
//Create a stub for the configs file
configStub = sinon.stub(serviceConfig,'config').resolves(serviceConfig)
const result = await filetoBeTested.methodToTest(var1,var3);
expect(result).to.be.equal(expectedResponse);
});
}
这是conf.json文件,可在需要测试的方法中“提供”配置变量:
{
"p1":"test1","p2":"test2","prop1": { "pro1_child": "2000" }
...
}
但是我得到TypeError: Cannot stub non-existent own property config
我可能做错了什么?
这些是我正在使用的模块:
"mocha": "^5.0.5","rewire": "^4.0.1","sinon": "^4.5.0","chai": "^4.2.0","chai-as-promised": "^7.1.1"
解决方法
我最终发现,如果定义了全局变量“ config”,则可以继续测试。可以关闭
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。