【发布时间】:2020-12-30 11:33:08
【问题描述】:
目前我正在尝试对我的应用程序进行单元测试,该应用程序是使用带有 typescript 的 Create-React-App 构建的,并且它的样式是 chakraui。 Chakrui 包含一个组件 ThemeProvider,它必须像这样包装整个应用程序。
这是我的 index.tsx 文件
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
import { ThemeProvider, CSSReset } from "@chakra-ui/core/dist";
import { theme } from "@chakra-ui/core/dist";
ReactDOM.render(
<React.StrictMode>
<ThemeProvider theme={theme}>
<CSSReset />
<App />
</ThemeProvider>
</React.StrictMode>,
document.getElementById("root")
对于我编写的每个单元测试,我都必须使用 ThemeProvider 包装组件以使测试通过:
import React from "react";
import { render } from "@testing-library/react";
import { ThemeProvider } from "@chakra-ui/core/dist";
import App from "./App";
describe("<App />", () => {
test("smoke test", () => {
render(
<ThemeProvider>
<App />
</ThemeProvider>
);
});
});
但这非常冗长,并且必须为我编写的每个测试完成。有没有办法在每个.test.tsx 文件中只执行一次?
【问题讨论】:
标签: reactjs jestjs react-testing-library