我正在尝试使用 mocha 对非导出函数运行单元测试,但它给出了错误“xx 不是函数”。示例结构就像 ff 代码,其中我想测试函数 isParamValid。settings.js 中的代码格式已经存在于我们的系统中,所以我无法重构它。// settings.jsconst 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.jsconst 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); }) })
1 回答
![?](http://img1.sycdn.imooc.com/533e4bec0001ae5302000200-100-100.jpg)
RISEBY
TA贡献1856条经验 获得超5个赞
你不能直接访问isParamValid这里。尝试通过集成对其进行测试,如下所示
const settings = require('./settings.js'); // No need of rewire
describe('isParamValid', () => {
it('should validate param', () => {
const demo = settings.getSettings; // Read it from getSettings
expect(demo(0, 1)).to.equal(true);
expect(demo(1, 0)).to.equal(true);
expect(demo(1, 1)).to.equal(false);
})
})
添加回答
举报
0/150
提交
取消