【发布时间】:2020-03-19 20:53:09
【问题描述】:
我在我的 React 组件中使用了 Material-UI 组件。因此,我需要在测试中的所有组件周围应用 <MuiThemeProvider></MuiThemeProvider> 组件。
我的组件位于单独的文件夹中:
./src/components/Header/Header.tsx
./src/components/Header/Header.test.ts
./src/components/Header/...
./src/components/Footer/Footer.tsx
./src/components/Footer/Footer.test.ts
./src/components/Footer/...
// etc.
测试必须如下所示:
import React from 'react';
import { render } from '@testing-library/react';
import Header from './Header';
it('matches snapshot', () => {
const container = render(
// This theme provider is necessary since my components depend on it.
// But rather don't want to include this in all my components.
<MuiThemeProvider theme={theme}>
<Header />
</MuiThemeProvider>
);
expect(container).toMatchSnapshot();
});
但现在我必须在每个测试中定义 MuiThemeProvider。
我的所有测试都可以这样做一次吗?
【问题讨论】:
-
也许我并没有真正遵循那个例子。但我不想嘲笑 HOC 本身。我只是想把它们“包裹”起来。
标签: reactjs jestjs react-testing-library