代码之家  ›  专栏  ›  技术社区  ›  Aleksei

即使在被嘲弄时也会执行jest模块

  •  2
  • Aleksei  · 技术社区  · 8 年前

    throw 'Module is executed';
    
    foo = () => {
      return 'boom';
    }
    
    module.exports = foo;
    

    crashingModule.test.js:

    const foo = require('./crashingModule');
    jest.mock('./crashingModule');
    

    测试套件无法运行

    Error
    
      Module is executed
    

    那是因为内心在开玩笑 run module 即使在嘲笑之后。

    当前解决方法:

    const echarts = require('echarts');
    const zrenderUtil = require('zrender/lib/core/util');
    
    module.exports = {
      echarts: echarts,
      zrenderUtil: zrenderUtil
    }
    

    然后在我们的模块和该模块的测试中导入。这样,当包装器被取笑时,就不会执行echarts。只运行包装器模块,没有副作用。

    0 回复  |  直到 8 年前