用途:React Testing Library 用于以贴近用户使用方式编写 React 组件测试,强调测试用户可见与可交互的行为,而非组件内部状态、内部方法、生命周期或子组件实现细节。
主要能力:提供按无障碍角色、标签、文本等优先级的查询 API(getByRole、getByLabelText、getByText、getByAltText、getByTitle、getByTestId);区分 getBy、queryBy、findBy 及 All 变体的匹配与异步行为;支持 user-event 模拟点击、输入、选择、键盘、剪贴板与指针交互;提供 waitFor、findBy、waitForElementToBeRemoved 等异步工具;支持 renderHook、rerender、within 作用域查询、screen.debug 与 logRoles 调试,以及 jest-dom 断言匹配器。
使用方式:安装 npm install --save-dev @testing-library/react @testing-library/dom,推荐附加 @testing-library/user-event 与 @testing-library/jest-dom;React 19 需 v16.1.0+。基本流程为 render 渲染组件,用 screen 查询,await user.type/click 模拟交互,再用 expect 断言。可用 configure 设置 testIdAttribute、asyncUtilTimeout、defaultHidden、throwSuggestions。
适用场景:React 组件与自定义 Hook 的行为测试、表单与异步加载界面测试、需要无障碍语义查询的测试。
限制:资料未提供具体版本兼容细节、性能数据或收费信息;应避免按 class/id 查询、使用 container.firstChild、在可用 userEvent 时使用 fireEvent、测试实现细节、对 findBy 再包 waitFor 等反模式。