开玩笑如何模拟依赖项所需要的模块?

时间:2018-07-17 06:22:53

标签: javascript node.js unit-testing jestjs

我知道在单元测试中如何通过jest模拟模块。但是我的问题是如何模拟依赖项所需的模块。例如,我在A文件中定义了依赖项package.json,而A依赖于B。因此,在单元测试中,如何模拟B使用的A

1 个答案:

答案 0 :(得分:1)

jest.mock适用于任何级别的依赖项。所以

App

jet.mock('B'); 测试开始时可以使用。

您还可以通过将模拟放到名为A的特殊文件夹中来provide auto-mocks。因此,一旦__mocks__进入B,我们需要在node_modules旁边的同级__mocks__目录中进行模拟,例如

node_modules

最后要提防

  

警告:如果我们要模拟Node的核心模块(例如:fs或path),请显式调用例如jest.mock('path')是必需的,因为默认情况下不对核心Node模块进行模拟。