SuperAPI AI 工具集

writing-tests

测试与质量

查看项目

更新于 10-15 18:46

技能介绍

用途:指导编写单元、集成与端到端(E2E)测试,帮助决定“测什么”和“用什么测”。核心原则是测试行为而非实现,并按风险排优先级。

主要能力与选型: 单元测试针对单个函数/hook,适用于纯逻辑与计算,工具为 Vitest、Jest。 集成测试针对组件加依赖,适用于表单、数据展示,工具为 Testing Library。 E2E 测试覆盖完整用户流程,适用于关键路径,工具为 Playwright。

应始终测试:认证流程、支付/结账、数据变更(创建、更新、删除)、授权规则、关键业务逻辑。很少测试:静态内容、第三方内部实现、纯样式。

文件组织:组件测试就近放置,如 src/components/Button/ 下的 Button.test.tsx;E2E 测试放在根目录 e2e/,如 auth.spec.ts、checkout.spec.ts。

常用模式:Arrange-Act-Assert。例如 test('increments on click', () => { render(<Counter initial={0} />); fireEvent.click(screen.getByRole('button')); expect(screen.getByText('1')).toBeInTheDocument() })。查询优先级从优到劣:getByRole、getByLabelText、getByText、getByTestId(最后手段)。

行为优先示例:避免断言组件内部状态(如 component.state.isOpen),改为断言用户可见结果(如 expect(screen.getByRole('dialog')).toBeVisible())。

时间有限时的最小可行测试:E2E 覆盖快乐路径;单元覆盖复杂逻辑以捕获边界情况;集成覆盖关键组件(表单、数据)。

高级模式(API 模拟、测试夹具与覆盖率)见 MOCKING.md。具体 API、配置与版本要求暂未提供。