react-dom/test-utils 棄用警告

TODO: 更新至版本 19?

ReactDOMTestUtils.act() 警告

來自 react-dom/test-utilsact 已被棄用,建議使用來自 reactact

修改前

import {act} from 'react-dom/test-utils';

修改後

import {act} from 'react';

其餘 ReactDOMTestUtils API

除了 act 之外的所有 API 都已被移除。

React 團隊建議您將測試遷移至 @testing-library/react 以獲得現代且完善支援的測試體驗。

ReactDOMTestUtils.renderIntoDocument

renderIntoDocument 可以使用 @testing-library/react 中的 render 來取代。

修改前

import {renderIntoDocument} from 'react-dom/test-utils';

renderIntoDocument(<Component />);

修改後

import {render} from '@testing-library/react';

render(<Component />);

ReactDOMTestUtils.Simulate

Simulate 可以使用 @testing-library/react 中的 fireEvent 來取代。

修改前

import {Simulate} from 'react-dom/test-utils';

const element = document.querySelector('button');
Simulate.click(element);

修改後

import {fireEvent} from '@testing-library/react';

const element = document.querySelector('button');
fireEvent.click(element);

請注意,fireEvent 會在元素上觸發實際事件,而不僅僅是模擬呼叫事件處理程式。

所有已移除 API 列表

  • mockComponent()
  • isElement()
  • isElementOfType()
  • isDOMComponent()
  • isCompositeComponent()
  • isCompositeComponentWithType()
  • findAllInRenderedTree()
  • scryRenderedDOMComponentsWithClass()
  • findRenderedDOMComponentWithClass()
  • scryRenderedDOMComponentsWithTag()
  • findRenderedDOMComponentWithTag()
  • scryRenderedComponentsWithType()
  • findRenderedComponentWithType()
  • renderIntoDocument
  • Simulate