javascript - Jest React 测试 es6 导入/导出不需要的模拟

标签 javascript testing reactjs ecmascript-6 jestjs

当使用 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/

相关文章:

testing - 在 capybara 上使用自定义 Selenium 服务器

javascript - React - 如何将点击文本上的 Prop 传递到图像

reactjs - 无法有条件地更新 `setState`里面的 `useEffect`

reactjs - 同一组件上具有不同路径的 React Router : does not re-initialize component (useEffect [] not called)

javascript - 可以更改背景颜色 onClick,然后在一秒钟后自动变回吗?

json - 需要管理测试 RESTful Web 服务的测试人员的最佳实践是什么?

java - 为复选框分配一个值(true 或 false)

testing - 我可以更改 TFS 测试用例的布局吗?

javascript - 如何在 ember 中创建枚举服务

c# - 在 asp.net 网站中打印网页时,分页之前无法在 firefox 浏览器中工作