【发布时间】:2020-11-29 03:53:50
【问题描述】:
我正在尝试使用 mocha 对非导出函数运行单元测试,但它给出了错误“xx 不是函数”。示例结构类似于 ff 代码,我想在其中测试函数 isParamValid。 settings.js中的代码格式已经存在于我们的系统中,所以我无法重构它。
// settings.js
const settings = (() => {
const isParamValid = (a, b) => {
// process here
}
const getSettings = (paramA, paramB) => {
isParamValid(paramA, paramB);
}
return {
getSettings,
}
})();
module.exports = settings;
我试过ff代码来测试,但是mocha报错ReferenceError: isParamValid is not defined
// settings.test.js
const settings= rewire('./settings.js');
describe('isParamValid', () => {
it('should validate param', () => {
let demo = settings.__get__('isParamValid');
expect(demo(0, 1)).to.equal(true);
expect(demo(1, 0)).to.equal(true);
expect(demo(1, 1)).to.equal(false);
})
})
【问题讨论】:
-
不,你不能直接测试
isParamValid。因为这里是私人的。
标签: javascript unit-testing mocha.js chai rewire