SuperAPI AI 工具集

vitest

测试与质量

查看项目

更新于 10-16 04:35

技能介绍

用途:该技能面向 React 组件、hooks 与工具函数的单元测试和集成测试,使用 Vitest 搭配 React Testing Library。E2E 测试不在范围内,应改用 Playwright 相关的 prowler-test-ui 技能。

主要能力与约定:测试结构要求使用 Given/When/Then(AAA)模式并加注释;describe 块按行为而非方法分组,可嵌套 when 条件与 should 预期行为。查询优先级依次为 getByRole、getByLabelText、getByPlaceholderText、getByText,getByTestId 仅作最后手段,避免使用 container.querySelector。交互必须使用 userEvent 而非 fireEvent,先调用 userEvent.setup()。异步场景用 findBy 等待元素出现,用 waitFor 做断言,且每个 waitFor 只放一个断言。Mock 使用 vi.fn(),可配合 mockResolvedValue 设置返回值,并在 afterEach 中调用 vi.restoreAllMocks() 清理;优先用 vi.spyOn 观察,谨慎使用 vi.mock 替换整个模块。常用匹配器覆盖存在性、状态、内容与函数调用断言。不应测试内部 state、第三方库调用以及非条件性的静态内容,应聚焦用户可见行为。文件组织上测试文件与组件同目录共置。

使用方式:命令包括 pnpm test(监听模式)、pnpm test:run(单次运行)、pnpm test:coverage(带覆盖率)、pnpm test Button(按名称过滤)。

适用场景与限制:适用于 React 项目的单元与集成测试编写。资料未提供安装步骤、配置细节、版本要求及与其他测试框架的对比信息。