用途:在编写 React 组件、自定义 Hook 或数据获取逻辑的测试时启用,覆盖渲染、交互、无障碍、异步状态(加载/错误/成功)、MSW 接口模拟以及测试基础设施(Provider、测试工具)搭建。不适用于 Playwright 端到端测试、后端 Python 测试、TDD 流程约束或组件实现代码编写。
主要能力与原则:核心是测行为而非实现,查询优先级为 getByRole、getByLabelText、getByPlaceholderText、getByText、getByDisplayValue、getByAltText,getByTestId 仅作最后手段;交互统一使用 userEvent 而非 fireEvent。不测内部 state、CSS 类与样式、组件实例方法、调用了哪些 Hook、动态内容快照及第三方库内部实现。
用法要点:组件测试按 Arrange→Act→Assert 组织;异步优先用 findBy* 而非 waitFor+getBy*,必要时可提高 waitFor 超时;错误状态可用 server.use 覆盖 MSW handler。MSW 通过 setupServer 建立 mock server,在 Vitest setup 中 beforeAll 调用 server.listen({ onUnhandledRequest: "error" }),afterEach 调用 server.resetHandlers(),afterAll 调用 server.close()。Hook 测试使用 renderHook 与 act,配合 vi.useFakeTimers 处理防抖等定时逻辑;TanStack Query 场景通过 QueryClientProvider 包装。无障碍测试引入 jest-axe 的 axe 与 toHaveNoViolations。可自定义 renderWithProviders 统一包裹 QueryClientProvider、MemoryRouter、AuthProvider 等。
限制与注意:涉及 Provider 的组件需用自定义 render;使用路由参数的组件用 MemoryRouter initialEntries;弹窗/Portal 用 screen 查询;Testing Library 会自动清理,无需手动 cleanup。资料未提供安装命令、版本要求与收费信息。