用途:为 React 19 迁移提供测试文件改写的前后对照模式,按依赖顺序处理各类兼容问题。
主要能力与用法:
- act 导入修正:React 19 已移除 react-dom/test-utils 中的 act,改为
import { act } from 'react'。若与其他 test-utils 导入混用,需拆分导入。 - Simulate 改为 fireEvent:Simulate 在 React 19 中已移除,改用 @testing-library/react 的 fireEvent,如 fireEvent.click(element)、fireEvent.change(input, { target: { value: 'hello' } })、fireEvent.submit(form)、fireEvent.keyDown(element, { key: 'Enter', keyCode: 13 })。
- react-dom/test-utils 全量 API 映射:act→react、Simulate→fireEvent、renderIntoDocument→render,findRenderedDOMComponentWithTag 等查找方法→RTL 的 getByRole/getByTestId,scryRenderedDOMComponentsWithTag→getAllByRole,isElement/isCompositeComponent/isDOMComponent 直接移除。
- StrictMode 调用次数:React 19 StrictMode 不再在开发环境对 useEffect 双调用,计数断言需从 2 改为 1;渲染阶段(组件体)调用仍为双调用,保持 2。建议先运行失败测试读取实际计数而非猜测。
限制:资料未提供适用范围、版本细节或完整迁移步骤之外的额外说明。