我正在使用react测试库对组件进行单元测试。但是当我渲染组件时,我得到了这个错误:
无法在卸载的组件上找到节点
代码:
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上执行大量异步调用,然后更新组件的状态。
但是看起来测试在异步调用有机会更新状态之前就删除了组件。
这适用于没有异步调用的基本组件。
我错过了什么?
1条答案
按热度按时间2guxujil1#
在搜索了这么多地方之后,原来是React版本的问题。
我使用的是React@17.0.2版本。导致上述问题的原因。
请使用React@16.10.0,这将起作用。