为什么开玩笑的配置的unmockedModulePathPatterns不取消模拟axios?

时间:2019-09-16 10:20:50

标签: unit-testing jestjs axios

我有一个应用程序,试图将集成测试与单元测试区分开。这种差异是通过两种类型的文件后缀.ispec.ts用于集成而后缀.test.ts用于单位而造成的。

它们之间的另一个区别是单元测试不应访问网络,因为我已经在axios上为<rootDir>/__mocks__/axios.ts设置了一个模拟,以防止该行为成功。但是,对于集成测试,我想通过网络访问,axios应该保持其正常运行。

为防止在ispec文件上模拟axios,我在所有文件中添加了以下行:

// anyFile.ispec.ts
imports (...)

jest.unmock('axios'); // this line required in every .ispec file

describe(...)

在阅读笑话文档时,我遇到了以下选项unmockedModulePathPatterns,顾名思义,该数组上定义的模块将不受笑话cli的影响。

因此,我已将玩笑配置更改为:

// jest.unit.js
module.exports = {
  testRegex: '/__tests__/.+\\.test\\.ts$'
};

// jest.integration.js
module.exports = {
  testRegex: '/__tests__/.+\\.ispec\\.ts$',
  unmockedModulePathPatterns: ['axios']
}

令我惊讶的是,从我的jest.unmock('axios')文件中删除了行ispec并运行了jest --config ./jest.integration.js之后,仍然使用了模拟的axios,这不是我的意图。

我是否错过了unmockedModulePathPatterns的要点,或者说这是玩笑配置上的错误?我还尝试将automock设置为false,但是行为仍然相同。

0 个答案:

没有答案