SuperAPI AI 工具集

react-testing

前端与建站

查看项目

更新于 10-16 12:32

技能介绍

该技能用于指导 React 应用测试,涵盖组件、Hook、Context 与表单等场景。资料强调两条主线:优先使用 vitest-browser-react 在 Vitest Browser Mode 真实浏览器中测试需要渲染、事件、焦点、CSS、无障碍或浏览器 API 的断言;若仓库已有稳定的 @testing-library/react 与 jsdom 环境且足以验证纯逻辑,则保留轻量方案。

主要能力包括:异步 render()/renderHook() 与 expect.element() 自动重试断言;通过 getByRole、getByLabelText 或 getByText 等可感知方式查询元素;对 Portal 使用 vitest/browser 的 page 查询;用 MSW 的 setupWorker 与 worker.use() 覆盖请求;用 wrapper 选项为 Hook 注入 Context;测试加载态、错误边界、Suspense 与条件渲染。

使用方式上,需在仓库包管理器下安装 vitest、@vitest/browser-playwright、vitest-browser-react 与 @vitejs/plugin-react,并在 vitest.config.ts 中加入 React 插件。资料要求避免手动 act() 包裹交互,Hook 状态更新使用 renderHook 返回的 act;不要测试组件内部状态,不要浅渲染或 vi.mock 应用自身拥有的子组件,应渲染完整组件树并断言父组件可见事实。

限制方面:React Server Components 无法在 Browser Mode 组件测试中运行,需改用 e2e 或抽离逻辑做单元测试;测试应保持幂等,清理需确认自动或显式注册;资料未提供价格、平台或效果数据。