出现错误无法在未安装的组件上找到节点。反应测试库?
Getting error Unable to find node on an unmounted component. react testing liberary?
我正在使用 React 测试库对组件进行单元测试。
但是我一渲染组件就收到错误。
Unable to find a node on an unmounted component.
代码:-
import React from 'react';
import {render, fireEvent, waitFor, screen} from '@testing-library/react';
import '@testing-library/jest-dom';
import {server} from '../__mocks__/server.mock';
import Deprovision from '../Deprovision';
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());
test('Deprovision renders correctly.', async () => {
console.log(TEST_BASE_URL);
render(<Deprovision
onRef={() => {}}
close={() => {}}
updateDepID={() => {}}
/>);
});
该组件对 init 执行大量异步调用,然后更新组件上的状态。
但似乎测试在异步调用有机会更新状态之前删除组件。
这适用于没有异步调用的基本组件。
我错过了什么?
找了那么多地方,原来是React版本的问题
我使用的是 React@17.0.2 版本。这是导致上述问题的原因。
请使用 React@16.10.0,这会起作用。
我正在使用 React 测试库对组件进行单元测试。 但是我一渲染组件就收到错误。
Unable to find a node on an unmounted component.
代码:-
import React from 'react';
import {render, fireEvent, waitFor, screen} from '@testing-library/react';
import '@testing-library/jest-dom';
import {server} from '../__mocks__/server.mock';
import Deprovision from '../Deprovision';
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());
test('Deprovision renders correctly.', async () => {
console.log(TEST_BASE_URL);
render(<Deprovision
onRef={() => {}}
close={() => {}}
updateDepID={() => {}}
/>);
});
该组件对 init 执行大量异步调用,然后更新组件上的状态。
但似乎测试在异步调用有机会更新状态之前删除组件。
这适用于没有异步调用的基本组件。
我错过了什么?
找了那么多地方,原来是React版本的问题
我使用的是 React@17.0.2 版本。这是导致上述问题的原因。
请使用 React@16.10.0,这会起作用。