|
|
@@ -1,5 +1,7 @@
|
|
|
# Story 004.001: 实际请求测试基础设施
|
|
|
|
|
|
+**父史诗**: 史诗004 - API实际请求测试基础设施
|
|
|
+
|
|
|
## Status
|
|
|
Draft
|
|
|
|
|
|
@@ -9,24 +11,24 @@ Draft
|
|
|
**so that** 我可以在真实数据库环境下验证API端点的行为,确保系统功能的正确性
|
|
|
|
|
|
## Acceptance Criteria
|
|
|
-1. 建立实际请求测试基础设施
|
|
|
-2. 用户API实际请求测试实现
|
|
|
-3. CI/CD流水线集成
|
|
|
+1. 建立实际请求测试基础设施 - 测试环境启动时间<5秒,数据库连接成功率100%
|
|
|
+2. 用户API实际请求测试实现 - 核心用户管理端点测试覆盖率100%
|
|
|
+3. CI/CD流水线集成 - 测试结果自动报告上传,失败时发送通知
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
-- [ ] 配置实际请求测试环境 (AC: 1)
|
|
|
+- [ ] 配置实际请求测试环境 (AC: #1)
|
|
|
- [ ] 设置测试数据库连接配置
|
|
|
- [ ] 配置测试数据种子和清理机制
|
|
|
- [ ] 建立测试服务器启动和关闭流程
|
|
|
-- [ ] 创建核心测试工具和工具函数 (AC: 1, 2)
|
|
|
+- [ ] 创建核心测试工具和工具函数 (AC: #1, #2)
|
|
|
- [ ] 实现认证用户创建工具
|
|
|
- [ ] 创建测试数据工厂函数
|
|
|
- [ ] 开发API请求包装器
|
|
|
-- [ ] 实现用户API的实际请求测试 (AC: 2)
|
|
|
+- [ ] 实现用户API的实际请求测试 (AC: #2)
|
|
|
- [ ] 用户创建和读取测试
|
|
|
- [ ] 用户更新和删除测试
|
|
|
- [ ] 用户搜索和过滤测试
|
|
|
-- [ ] 集成到CI/CD流水线 (AC: 3)
|
|
|
+- [ ] 集成到CI/CD流水线 (AC: #3)
|
|
|
- [ ] 配置GitHub Actions测试工作流
|
|
|
- [ ] 设置测试报告生成和上传
|
|
|
- [ ] 配置测试失败通知机制
|
|
|
@@ -47,8 +49,8 @@ Draft
|
|
|
### 现有测试基础设施 [Source: 现有代码分析]
|
|
|
- 已有测试工具: `src/server/__test_utils__/api-client.ts`
|
|
|
- 已有测试工具: `src/server/__test_utils__/test-db.ts`
|
|
|
-- 已有集成测试示例: `src/server/api/__integration_tests__/users.integration.test.ts`
|
|
|
-- 需要增强为实际数据库连接而不是mock
|
|
|
+- 已有集成测试示例: `src/server/api/__integration_tests__/users.integration.test.ts` (当前为mock测试)
|
|
|
+- 需要修改为使用真实数据库连接而不是mock
|
|
|
|
|
|
### 测试标准要求 [Source: architecture/coding-standards.md#测试标准]
|
|
|
- 测试文件命名: `*.integration.test.ts`
|
|
|
@@ -56,7 +58,7 @@ Draft
|
|
|
- 断言风格: Expect语法
|
|
|
- 测试数据: 使用工厂函数创建测试数据
|
|
|
|
|
|
-### API端点信息 [Source: architecture/api-design-integration.md]
|
|
|
+### API端点信息 [Source: api-design-integration.md]
|
|
|
- **认证**: JWT Bearer Token认证机制
|
|
|
- **版本控制**: `/api/v1/` 前缀
|
|
|
- **用户管理端点**:
|
|
|
@@ -67,10 +69,12 @@ Draft
|
|
|
- DELETE `/api/v1/users/:id` - 删除用户
|
|
|
|
|
|
### 安全考虑 [Source: architecture/security-integration.md]
|
|
|
-- 测试环境使用独立的测试数据库
|
|
|
-- 测试数据不包含真实用户信息
|
|
|
-- 测试完成后清理所有测试数据
|
|
|
-- 认证token在测试中安全处理
|
|
|
+- 测试环境使用独立的测试数据库,与生产环境完全隔离
|
|
|
+- 测试数据库访问权限严格控制,仅限测试用户访问
|
|
|
+- 测试数据不包含真实用户信息,使用生成的测试数据
|
|
|
+- 敏感测试数据(如认证token)进行加密处理
|
|
|
+- 测试完成后自动清理所有测试数据,确保无残留
|
|
|
+- 测试环境网络隔离,防止对生产环境的意外访问
|
|
|
|
|
|
## Testing
|
|
|
### 测试策略
|