Story 004.001: 实际请求测试基础设施
Status
Draft
Story
As a 质量保证工程师
I want 建立实际HTTP请求测试的基础设施
so that 我可以在真实数据库环境下验证API端点的行为,确保系统功能的正确性
Acceptance Criteria
- 建立实际请求测试基础设施
- 用户API实际请求测试实现
- CI/CD流水线集成
Tasks / Subtasks
Dev Notes
技术栈和测试框架 [Source: architecture/tech-stack.md#测试框架]
- 测试框架: Vitest 2.x + Supertest 6.x
- 测试位置:
src/server/api/__integration_tests__/ 目录
- 数据库: 使用真实PostgreSQL数据库连接进行测试
- 覆盖率目标: 核心API端点测试覆盖率100%
项目结构指导 [Source: architecture/source-tree.md#API测试]
- API测试文件应位于对应API端点的
__tests__ 文件夹中
- 集成测试应使用
__integration_tests__ 目录结构
- 测试工具函数位于
src/server/__test_utils__/
现有测试基础设施 [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
测试标准要求 [Source: architecture/coding-standards.md#测试标准]
- 测试文件命名:
*.integration.test.ts
- 测试组织: 使用describe/it块结构
- 断言风格: Expect语法
- 测试数据: 使用工厂函数创建测试数据
API端点信息 [Source: architecture/api-design-integration.md]
- 认证: JWT Bearer Token认证机制
- 版本控制:
/api/v1/ 前缀
- 用户管理端点:
- GET
/api/v1/users - 获取用户列表
- POST
/api/v1/users - 创建用户
- GET
/api/v1/users/:id - 获取用户详情
- PUT
/api/v1/users/:id - 更新用户
- DELETE
/api/v1/users/:id - 删除用户
安全考虑 [Source: architecture/security-integration.md]
- 测试环境使用独立的测试数据库
- 测试数据不包含真实用户信息
- 测试完成后清理所有测试数据
- 认证token在测试中安全处理
Testing
测试策略
- 测试类型: 集成测试(实际HTTP请求 + 真实数据库)
- 测试范围: 所有核心用户管理API端点
- 测试数据: 使用工厂模式创建测试用户和数据
- 清理机制: 每个测试用例后清理测试数据
测试验证点
- HTTP状态码验证
- 响应数据结构验证
- 数据库状态验证
- 错误处理验证
- 性能基准验证(响应时间 < 200ms)
测试报告
- Vitest测试报告生成
- 覆盖率报告集成
- CI/CD流水线测试结果展示
Change Log
| Date |
Version |
Description |
Author |
| 2025-09-17 |
1.0 |
初始故事创建 |
Bob (SM) |
Dev Agent Record
Agent Model Used
Debug Log References
Completion Notes List
File List
QA Results