Files
wenzi/docs/archive/2026-03-04-cleanup/test-plan.md
Your Name 0eed01e9eb docs: 完善项目文档并清理过时文件
新增文档:
- 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个核心文档
- 建立清晰的文档导航体系
- 完善文档间的交叉引用
2026-03-04 10:41:38 +08:00

2.6 KiB
Raw Blame History

测试方案

本文档概述了针对后端API所采用的测试策略、工具和覆盖范围。

1. 测试策略

我们采用分层测试的策略,以确保代码质量和功能正确性。

1.1 单元测试 (Unit Tests)

  • 目标: 验证单个服务Service或组件内部的业务逻辑是否正确。
  • 范围: 主要针对 ActivityService 中的公共方法。
  • 实现: 测试用例位于 ActivityServiceTest.java 中。在此层面所有外部依赖如数据库、其他服务都应被模拟Mock以保证测试的独立性和速度。
  • 覆盖场景:
    • 业务规则校验(如活动时间合法性)。
    • 边界条件(如各种奖励计算的临界值)。
    • 异常路径(如当依赖的服务失败时,是否抛出预期的异常)。

1.2 集成测试 (Integration Tests)

  • 目标: 验证从API端点到服务层的完整请求-响应流程是否通畅。
  • 范围: 主要针对 controller 包下的所有API控制器。
  • 实现: 测试用例位于 ActivityControllerTest.javaApiKeyControllerTest.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脚本的语法正确性。