Jest 是一个流行的 JavaScript 测试框架,它允许开发者编写单元测试、集成测试和端到端测试。__mocks__
目录是 Jest 中的一个特殊目录,用于存放模拟(mock)文件。当 Jest 运行测试时,它会自动查找这个目录下的文件,并在需要时使用它们来模拟模块。
如果你希望 Jest 忽略根目录中的 __mocks__
目录,可以通过配置 Jest 的 moduleNameMapper
或者调整文件结构来实现。
如果你不希望 Jest 使用 __mocks__
目录下的模拟文件,可能是因为:
__mocks__
目录可能被错误地放置在了不应该存在的位置。moduleNameMapper
在 Jest 的配置文件(通常是 jest.config.js
或 package.json
中的 jest
字段)中,你可以使用 moduleNameMapper
来排除特定的目录。
// jest.config.js
module.exports = {
moduleNameMapper: {
'^__mocks__$': '<rootDir>/__mocks__/ignored',
},
};
这样配置后,Jest 在查找模块时会忽略根目录下的 __mocks__
目录。
另一种简单的方法是将 __mocks__
目录重命名或移动到其他位置,这样 Jest 就不会自动识别它了。
例如,你可以将其重命名为 mocks_disabled
或者移动到 test
目录下。
假设你有一个项目结构如下:
/project-root
/src
/__mocks__
/test
package.json
你可以通过修改 jest.config.js
来忽略根目录下的 __mocks__
:
// jest.config.js
module.exports = {
moduleNameMapper: {
'^__mocks__$': '<rootDir>/__mocks__/ignored',
},
};
或者,你可以将 __mocks__
目录移动到 test
目录下:
/project-root
/src
/test/__mocks__
/test
package.json
这样,Jest 就不会在根目录下查找 __mocks__
目录了。
通过上述方法,你可以有效地控制 Jest 对模拟文件的使用,确保测试的准确性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云