当使用ES6导入/导出语法时,似乎Jest是默认情况下自动导入我导入的组件,即使我明确地为组件关闭了模拟.
jest.autoMockOff();
jest.dontMock("../bundles/Opportunities/MarkAsLost.jsx");
Run Code Online (Sandbox Code Playgroud)
这是测试组件顶部的导入:
import MarkAsLost from "../bundles/Opportunities/MarkAsLost.jsx";
Run Code Online (Sandbox Code Playgroud)
这是被测组件底部的导出:
export default MarkAsLost;
Run Code Online (Sandbox Code Playgroud)
这是将导入的组件记录在测试文件中的结果:
{ [Function]
_isMockFunction: true,
_getMockImplementation: [Function],
mock: { calls: [ [Object] ], instances: [ [Object] ] },
mockClear: [Function],
mockReturnValueOnce: [Function],
mockReturnValue: [Function],
mockImpl: [Function],
mockImplementation: [Function],
mockReturnThis: [Function],
displayName: 'MarkAsLost' }
Run Code Online (Sandbox Code Playgroud)
当我使用旧样式语法,即:
var MarkAsLost = require("../bundles/Opportunities/MarkAsLost.jsx");
module.exports = MarkAsLost;
Run Code Online (Sandbox Code Playgroud)
这是loggin组件的结果,该组件现在在测试文件中表现得如我所愿
{ [Function] displayName: 'MarkAsLost' }
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激