【发布时间】:2020-07-04 17:33:23
【问题描述】:
我有一个使用 Jest 和 react-testing-library 和 .tsx 测试文件 (TypeScript) 的测试:
import React from "react";
import { Provider } from 'react-redux';
import { render, screen } from "@testing-library/react";
import Home from "./Home";
describe('Home', () => {
test("renders Programs without crashing", async () => {
const storeFake = (state: any) => ({
default: () => { },
subscribe: () => { },
dispatch: () => { },
getState: () => ({ ...state })
});
const store = storeFake({}) as any;
const { getByAltText } = render(<Provider store={store}>
<Home />
</Provider>);
// render should show the title
expect(getByAltText(/Great State/)).toBeInTheDocument();
});
测试通过但抛出异常:
console.error node_modules/react-dom/cjs/react-dom.development.js:88
Warning: unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.
in video (at Home.tsx:10)
in div (at Home.tsx:9)
in Home (created by ConnectFunction)
in ConnectFunction (at Home.test.tsx:15)
in Provider (at Home.test.tsx:14)
首先,有谁知道如何解决异常。其次,我知道这是一个警告,但看起来很严重,测试不应该失败吗?
【问题讨论】:
标签: reactjs typescript jestjs create-react-app react-testing-library