Jest React 测试 es6 导入/导出不需要的模拟
Posted
技术标签:
【中文标题】Jest React 测试 es6 导入/导出不需要的模拟【英文标题】:Jest React testing es6 import/export unwanted mock 【发布时间】:2016-07-12 09:42:59 【问题描述】:当使用 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'
任何帮助将不胜感激
【问题讨论】:
如果可以选择,我可能会建议您查看Enzyme。你可能会有更快乐的单元测试体验。 :) 酶很棒。但是@ffxsam 你的评论在这里断章取义。 当然。这就是为什么我只是将其作为评论而不是答案。 相关/欺骗:***.com/questions/33882868/babel-jest-es2015- 【参考方案1】:我遇到了同样的问题,jest.*
方法根本不起作用,另一方面,将“unmocking”功能移动到 package.json 中的 Jest's configuration - 工作正常:
"jest":
"unmockedModulePathPatterns": [
".*"
]
【讨论】:
以上是关于Jest React 测试 es6 导入/导出不需要的模拟的主要内容,如果未能解决你的问题,请参考以下文章
Jest Manual Mocks with React 和 Typescript:模拟 ES6 类依赖
使用 React、Typescript 和 ES6 进行 Jest 测试
在 ES6 中使用 Jest 测试 React Flux Store