Javascript 是否可能需要从模拟模块本身内部原始/实际实现模拟Jest模块?
我的应用程序设置为在Jest配置中有一个模块名映射,如下所示:Javascript 是否可能需要从模拟模块本身内部原始/实际实现模拟Jest模块?,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,我的应用程序设置为在Jest配置中有一个模块名映射,如下所示: // jest.config.js moduleNameMapper: { 'utils': '<rootDir>/__mocks__/utilMock.js', }, 然而,当我实际尝试测试时,requireActual并没有返回原始实现,因此我所有的测试都不认为funcA和funcB是函数 这是真的可以做到的吗,还是不管您在通过Jest config全局设置时做了什么,utils模块都会被模拟出来?因此,当您使
// jest.config.js
moduleNameMapper: {
'utils': '<rootDir>/__mocks__/utilMock.js',
},
然而,当我实际尝试测试时,requireActual
并没有返回原始实现,因此我所有的测试都不认为funcA
和funcB
是函数
这是真的可以做到的吗,还是不管您在通过Jest config全局设置时做了什么,
utils
模块都会被模拟出来?因此,当您使用模块映射时,这是不可能做到的,但如果您使用自动模拟,它会起作用。因此,不要在jest.config.js
的moduleNameMapper
中指定模拟文件,而是确保启用了自动模拟,然后在\umocks\uuuu
目录下有一个与您试图模拟的文件具有相同名称和路径的文件
您在那里导入/需要的任何内容都应该引用原始实现 你的路线正确吗?如果将其更改为
jest.requireActual('../utils')代码>啊,这并没有很好地贯彻到示例中,但我对所有导入都使用绝对/完整路径,所以它们绝对正确,是的
// ./__mocks__/utilMock.js
const actualUtils = jest.requireActual('/utils');
module.exports = {
actualUtils.funcA,
actualUtils.funcB,
funcC: jest.fn(),
funcD: jest.fn(),
};