|
|
@@ -0,0 +1,79 @@
|
|
|
+# API实际请求测试增强 - Brownfield Epic
|
|
|
+
|
|
|
+## Epic Goal
|
|
|
+为现有API系统添加实际HTTP请求测试,验证系统在真实数据库环境下的行为,确保集成测试不仅使用mock数据,还能测试实际的数据流和业务逻辑。
|
|
|
+
|
|
|
+## Epic Description
|
|
|
+
|
|
|
+### 现有系统上下文
|
|
|
+- **当前相关功能**:已有完整的API集成测试框架,但全部使用mock服务和模拟数据
|
|
|
+- **技术栈**:Node.js + TypeScript + Hono + TypeORM + PostgreSQL + Vitest
|
|
|
+- **集成点**:数据库连接、认证中间件、CRUD服务、API路由
|
|
|
+- **现有测试**:`src/server/api/__integration_tests__/users.integration.test.ts` - 纯mock测试
|
|
|
+
|
|
|
+### 增强详情
|
|
|
+- **新增内容**:创建实际HTTP请求测试套件,连接真实测试数据库进行端到端测试
|
|
|
+- **集成方式**:在现有测试框架基础上扩展,使用测试专用数据库环境
|
|
|
+- **成功标准**:
|
|
|
+ - 所有核心API端点都有实际请求测试
|
|
|
+ - 测试覆盖CRUD操作的实际数据库交互
|
|
|
+ - 测试通过率100%
|
|
|
+ - 与现有mock测试并行运行
|
|
|
+
|
|
|
+## Stories
|
|
|
+
|
|
|
+1. **Story 1**: 建立实际请求测试基础设施
|
|
|
+ - 配置测试数据库环境
|
|
|
+ - 创建测试数据准备和清理工具
|
|
|
+ - 实现测试专用的数据库连接
|
|
|
+
|
|
|
+2. **Story 2**: 实现用户API实际请求测试
|
|
|
+ - 用户CRUD操作的实际HTTP测试
|
|
|
+ - 认证和授权的端到端测试
|
|
|
+ - 数据验证和错误处理测试
|
|
|
+
|
|
|
+3. **Story 3**: 集成到CI/CD流水线
|
|
|
+ - 配置测试数据库的CI/CD环境
|
|
|
+ - 添加测试数据迁移脚本
|
|
|
+ - 确保测试的可靠性和稳定性
|
|
|
+
|
|
|
+## 兼容性要求
|
|
|
+
|
|
|
+- [✅] 现有API保持不变
|
|
|
+- [✅] 数据库schema变更向后兼容
|
|
|
+- [✅] 现有测试继续正常工作
|
|
|
+- [✅] 性能影响最小(测试专用数据库)
|
|
|
+
|
|
|
+## 风险缓解
|
|
|
+
|
|
|
+- **主要风险**:测试数据库污染生产数据
|
|
|
+- **缓解措施**:使用独立的测试数据库,自动数据清理
|
|
|
+- **回滚计划**:删除测试数据库,恢复原有测试配置
|
|
|
+
|
|
|
+## 完成定义
|
|
|
+
|
|
|
+- [ ] 所有故事完成且验收标准满足
|
|
|
+- [ ] 现有功能通过测试验证
|
|
|
+- [ ] 集成点正常工作
|
|
|
+- [ ] 文档适当更新
|
|
|
+- [ ] 现有功能无回归
|
|
|
+
|
|
|
+## 验证检查清单
|
|
|
+
|
|
|
+### 范围验证
|
|
|
+- [✅] Epic可在3个故事内完成
|
|
|
+- [✅] 无需架构文档(使用现有模式)
|
|
|
+- [✅] 增强遵循现有模式
|
|
|
+- [✅] 集成复杂度可控
|
|
|
+
|
|
|
+### 风险评估
|
|
|
+- [✅] 对现有系统风险低
|
|
|
+- [✅] 回滚计划可行
|
|
|
+- [✅] 测试方法覆盖现有功能
|
|
|
+- [✅] 团队具备集成点知识
|
|
|
+
|
|
|
+### 完整性检查
|
|
|
+- [✅] Epic目标清晰可实现
|
|
|
+- [✅] 故事范围适当
|
|
|
+- [✅] 成功标准可衡量
|
|
|
+- [✅] 依赖项已识别
|