我有一个react组件,它有两个孩子,像这样:
import {Child1} from './child1';
import {Child2} from './child2';
...
return (
<>
<Child1 />
<Child2 />
</>
)
我使用的是react testing-library
,应用程序是用create react app
创建的,没有弹出。我想在我的单元测试中模拟它们,因为它们有自己的测试,所以我试图:
jest.mock('./child1', () => 'some mocked string');
jest.mock('./child1', () => 'some mocked string');
但是当我使用import { render } from '@testing-library/react';
渲染它时,我看到了下面的Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined
。
为什么会这样?我如何模拟这些组件?
2条答案
按热度按时间3pvhb19x1#
child1
和child2
模块使用命名导出来导出其组件。您应该模拟命名导出组件Child1
和Child2
。下面的示例使用无状态功能组件模拟这两个模块及其组件。
例如:
index.tsx
:child1.tsx
:child2.tsx
:index.test.tsx
:测试结果:
js4nwp542#
如果您尝试呈现一个modul.export,您应该尝试这种方法
以促成另一种解决方案