当使用 ES6 导入/导出语法时,Jest 似乎在默认情况下自动模拟我导入的组件,即使我明确关闭了该组件的模拟。
jest.autoMockOff();
jest.dontMock("../bundles/Opportunities/MarkAsLost.jsx");
这是测试组件顶部的导入:
import MarkAsLost from "../bundles/Opportunities/MarkAsLost.jsx";
这是被测组件底部的导出:
export default MarkAsLost;
这是在测试文件中记录导入组件的结果:
{ [Function]
_isMockFunction: true,
_getMockImplementation: [Function],
mock: { calls: [ [Object] ], instances: [ [Object] ] },
mockClear: [Function],
mockReturnValueOnce: [Function],
mockReturnValue: [Function],
mockImpl: [Function],
mockImplementation: [Function],
mockReturnThis: [Function],
displayName: 'MarkAsLost' }
当我使用旧式语法时,即:
var MarkAsLost = require("../bundles/Opportunities/MarkAsLost.jsx");
module.exports = MarkAsLost;
这是登录组件的结果,它现在在测试文件中的行为与我想要的一样
{ [Function] displayName: 'MarkAsLost' }
任何帮助将不胜感激
最佳答案
我遇到了同样的问题,jest.*
方法根本不起作用,将“unmocking”功能移至 Jest's configuration另一方面,在 package.json 中 - 工作正常:
{
"jest": {
"unmockedModulePathPatterns": [
".*"
]
}
}
关于javascript - Jest React 测试 es6 导入/导出不需要的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36206308/