新增文档: - API_INTEGRATION_GUIDE.md: API集成指南(快速开始、SDK示例、常见场景) - DEPLOYMENT_GUIDE.md: 部署指南(环境要求、生产部署、Docker部署) - CONFIGURATION_GUIDE.md: 配置指南(环境配置、数据库、Redis、安全) - DEVELOPMENT_GUIDE.md: 开发指南(环境搭建、项目结构、开发规范) 文档更新: - api.md: 补充8个缺失的API端点(分享跟踪、回调、用户奖励) 文档清理: - 归档18个过时文档到 docs/archive/2026-03-04-cleanup/ - 删除3个调试文档(ralph-loop-*) 代码清理: - 删除4个.bak备份文件 - 删除1个.disabled测试文件 文档结构优化: - 从~40个文档精简到12个核心文档 - 建立清晰的文档导航体系 - 完善文档间的交叉引用
38 lines
2.6 KiB
Markdown
38 lines
2.6 KiB
Markdown
# 测试方案
|
||
|
||
本文档概述了针对后端API所采用的测试策略、工具和覆盖范围。
|
||
|
||
## 1. 测试策略
|
||
|
||
我们采用分层测试的策略,以确保代码质量和功能正确性。
|
||
|
||
### 1.1 单元测试 (Unit Tests)
|
||
|
||
- **目标**: 验证单个服务(Service)或组件内部的业务逻辑是否正确。
|
||
- **范围**: 主要针对 `ActivityService` 中的公共方法。
|
||
- **实现**: 测试用例位于 `ActivityServiceTest.java` 中。在此层面,所有外部依赖(如数据库、其他服务)都应被模拟(Mock),以保证测试的独立性和速度。
|
||
- **覆盖场景**:
|
||
- 业务规则校验(如活动时间合法性)。
|
||
- 边界条件(如各种奖励计算的临界值)。
|
||
- 异常路径(如当依赖的服务失败时,是否抛出预期的异常)。
|
||
|
||
### 1.2 集成测试 (Integration Tests)
|
||
|
||
- **目标**: 验证从API端点到服务层的完整请求-响应流程是否通畅。
|
||
- **范围**: 主要针对 `controller` 包下的所有API控制器。
|
||
- **实现**: 测试用例位于 `ActivityControllerTest.java` 和 `ApiKeyControllerTest.java` 中。我们使用 Spring Boot 的 `@WebMvcTest` 配合 `MockMvc` 来实现。
|
||
- `@WebMvcTest` 提供了一个轻量级的测试环境,只加载Web层相关的Bean(如Controller, `ObjectMapper`等),而不加载完整的Spring应用上下文,从而加快测试速度。
|
||
- `ActivityService` 在此层被 `@MockBean` 模拟,使我们能专注于测试Controller的行为,如URL映射、HTTP方法、请求/响应的序列化/反序列化、参数验证和正确的HTTP状态码返回。
|
||
- **覆盖场景**:
|
||
- **成功路径**: 验证有效的请求是否能被正确处理并返回 `2xx` 状态码和预期的响应体。
|
||
- **验证失败路径**: 验证无效的请求体(如字段为空)是否会触发Bean Validation并返回 `400 Bad Request`。
|
||
- **资源未找到路径**: 验证请求一个不存在的资源(如 `GET /api/v1/activities/999`)是否返回 `404 Not Found`。
|
||
|
||
## 2. 测试工具
|
||
|
||
- **JUnit 5**: Java世界中最主流的测试框架。
|
||
- **Mockito**: 用于创建和配置模拟对象(Mock),以实现测试的隔离。
|
||
- **Spring Boot Test**: 提供了与Spring生态无缝集成的测试支持,包括 `@SpringBootTest`, `@WebMvcTest`, `@MockBean` 等核心功能。
|
||
- **MockMvc**: 用于在不启动真实HTTP服务器的情况下,对Spring MVC控制器进行端到端的调用和验证。
|
||
- **H2 Database**: 一个内存数据库,用于在运行单元测试时快速执行数据库迁移(Flyway),确保SQL脚本的语法正确性。
|