名称: 测试自动化 描述: 创建包含单元测试、集成测试和端到端测试的测试套件。用于设置测试、提高覆盖率或当用户询问测试时。
测试自动化
遵循测试金字塔创建全面的测试套件。
使用时机
- 为新代码设置测试
- 用户要求“添加测试”或“提高覆盖率”
- 重构之前(先添加测试)
- 实现CI/CD测试管道
测试金字塔
/\ 端到端测试(少数,关键路径)
/ \ 集成测试(中等)
/____\ 单元测试(多数,快速)
测试结构
单元测试
- 测试单个函数/方法
- 模拟外部依赖
- 快速执行(<100毫秒每个测试)
- 高覆盖率(>80%)
集成测试
- 测试组件交互
- 使用测试数据库/容器
- 中等执行时间
- 覆盖关键集成
端到端测试
- 测试完整用户流程
- 使用Playwright/Cypress
- 最慢的执行
- 仅覆盖快乐路径
测试模式
// Arrange-Act-Assert
describe("UserService", () => {
it("应该用有效数据创建用户", async () => {
// 安排
const userData = { name: "Test", email: "test@example.com" };
// 执行
const result = await userService.create(userData);
// 断言
expect(result.id).toBeDefined();
expect(result.name).toBe("Test");
});
});
输出
- 测试文件具有清晰的命名
- 模拟/存根实现
- 测试数据工厂
- 覆盖率配置
- CI管道集成
示例
输入: “为认证模块添加测试” 操作: 分析认证模块,为函数创建单元测试,为流程创建集成测试
输入: “为这个项目设置测试” 操作: 检测框架,配置测试运行器,创建示例测试,添加CI配置