为了账号安全,请及时绑定邮箱和手机立即绑定

非导出函数的 Mocha 单元测试返回“xx 不是函数”

非导出函数的 Mocha 单元测试返回“xx 不是函数”

天涯尽头无女友 2022-12-29 10:28:54
我正在尝试使用 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 回答

?
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);

    })

})


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信