首页 > 解决方案 > jest 如何模拟依赖项所需的模块?

问题描述

我知道如何jest在我的单元测试中模拟一个模块。但我的问题是如何模拟依赖项所需的模块。例如,我在文件A中定义了依赖项,而依赖于. 那么在我的单元测试中,我如何模拟使用哪个?package.jsonABBA

标签: javascriptnode.jsunit-testingjestjs

解决方案


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

jet.mock('B');

在测试开始时A将起作用。

您还可以通过将模拟放入名为__mocks__. 因此,一旦B进入,node_modules我们需要在兄弟目录中的like__mocks__旁边进行模拟node_modules

 -   node_modules
 --  B
 --- index.js
 -   __mocks__
 --  B.js

最后提防

警告:如果我们想模拟 Node 的核心模块(例如:fs 或路径),则需要显式调用例如 jest.mock('path'),因为默认情况下不会模拟核心 Node 模块。


推荐阅读