Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可能需要从模拟模块本身内部原始/实际实现模拟Jest模块?_Javascript_Unit Testing_Jestjs - Fatal编程技术网

Javascript 是否可能需要从模拟模块本身内部原始/实际实现模拟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配置中有一个模块名映射,如下所示:

// 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(),
};