首页 > 解决方案 > 我如何在另一个反应组件文件中 jest.mock 一个反应组件导入

问题描述

我正在尝试使用较新的 @testing-library/react 库编写一个笑话测试。这个较新的测试库没有浅层渲染,所以我试图模拟出我的测试组件用作解决方法的反应子组件。

但是我在使用 jest.mock 时遇到了问题,我似乎无法正确模拟“subComponent.jsx”文件。

当我在 test.js 文件中使用 jest.mock('subComponent.jsx', ...) 时,它只会模拟 test.js 文件中 subComponent.jsx 的导入。当我从 component.jsx 内部导入 subComponent.jsx 时,test.js 中的模拟不再适用。

那么如何从模拟的 component.jsx 内部获取 subComponent.jsx 的导入,而不必在内部处理 component.jsx 文件?

顺便说一句,如果有人有好的建议,我自然也愿意接受任何其他有效地实现@testing-library/react 浅渲染的解决方案......

test.js:

import Component from 'component.jsx';
jest.mock('subComponent.jsx', ...doSomething);


component.jsx:

import SubComponent from 'subComponent.jsx;
[SubComponent.jsx is not mocked here!!!!]

标签: reactjsunit-testingmockingjestjsreact-testing-library

解决方案


抱歉,事实证明这是@skyboyer 指出的我这边的一个大小写错误非常感谢。


推荐阅读