后端测试报告
生成日期: 2026-06-27
测试环境: JUnit 5 + Mockito, Java 8, Spring Boot 2.7.18
测试范围: cfc-backend 全部单元测试(纯 Mockito,无 MySQL 依赖)
最新提交: e547381 feat(body): add health-dimensions navigation entry
测试结果总览
| 指标 |
数值 |
| 测试文件总数 |
42 |
| 测试用例总数 |
557 |
| 控制器层测试 |
22 文件 / 363 用例 |
| 服务层测试 |
19 文件 / 190 用例 |
| 集成测试 |
1 文件 / 4 用例 |
| 本次新增 |
3 文件 / 44 用例 |
本次更新内容
新增项
| 模块 |
文件 |
新增用例数 |
测试策略 |
| 健康维度评分 |
service/DimensionScoreServiceTest.java |
21 |
纯 Mockito,无 Spring 上下文 |
| 商品管理 |
service/ProductServiceTest.java |
17 |
纯 Mockito,无 Spring 上下文 |
| 活动发布/结束 |
service/ActivityServicePublishTest.java |
6 |
纯 Mockito + spy |
DimensionScoreServiceTest 覆盖明细
| 方法 |
用例数 |
覆盖场景 |
getHealthDimension |
3 |
全空数据/部分维度有分/完整7维+过期 |
uploadScore |
2 |
null分返回错误/默认数据源 |
submitQuestionnaire |
3 |
多答案平均分/null得分/单答案 |
getDimensionHistory |
1 |
历史查询返回 |
calcLevel |
4 |
边界值: 85→excellent/60→good/40→fair/39→poor |
calcPercentile |
2 |
>95→100/无常模→0 |
refreshFromGutReport |
6 |
null报告跳过/gutHealthScore映射/维度完整性/null源记录/单项得分/null+非null记录混合 |
ProductServiceTest 覆盖明细
| 方法 |
用例数 |
覆盖场景 |
shelve |
6 |
上架/下架成功/商品不存在/无权操作/未审核/操作类型错误 |
review |
5 |
审核通过/拒绝+自定义原因/拒绝+默认原因/非待审核/商品不存在 |
create |
2 |
未登录/未审核供应商 |
detail |
3 |
不存在/未上架/approved状态可访问 |
update |
1 |
非本人商品无权修改 |
| 合计 |
17 |
|
ActivityServicePublishTest 覆盖明细
| 方法 |
用例数 |
覆盖场景 |
publish |
3 |
草稿→发布成功/活动不存在/非草稿不可发布 |
end |
3 |
已发布→结束成功/活动不存在/草稿状态也可结束(end不做状态校验) |
| 合计 |
6 |
|
全量测试文件清单
控制器层测试(22 文件 / 363 用例)
| 测试文件 |
用例数 |
目标控制器 |
AuthControllerTest |
39 |
认证(微信/手机/静默登录) |
WishControllerTest |
29 |
心愿 |
AssessmentOrderControllerTest |
24 |
测评订单 |
GuideFamilyTaskControllerTest |
20 |
规划师家庭任务 |
ProductOrderControllerTest |
20 |
商品订单 |
TaskControllerTest |
19 |
任务 |
HealthReportControllerTest |
19 |
健康报告 |
AIChatControllerTest |
17 |
AI 对话 |
EnergyControllerTest |
17 |
五维能量 |
ActivityControllerTest |
16 |
活动 |
PointsControllerTest |
16 |
积分 |
ProductControllerTest |
16 |
商品 |
AdminArticleControllerTest |
15 |
管理端文章 |
ArticleAdminControllerTest |
14 |
文章管理 |
PaymentControllerTest |
12 |
支付 |
FamilyControllerTest |
12 |
家庭 |
GuideRolePermissionTest |
21 |
规划师权限 |
GuideOrderControllerTest |
8 |
规划师订单 |
GuideTeamControllerTest |
9 |
团队管理 |
StatsControllerTest |
6 |
统计 |
ArticleControllerTest |
11 |
文章前台 |
ArticleCategoryControllerTest |
3 |
文章分类 |
服务层测试(19 文件 / 190 用例)
| 测试文件 |
用例数 |
测试策略 |
DimensionScoreServiceTest |
21 |
纯 Mockito(本次新增) |
ProductServiceTest |
17 |
纯 Mockito(本次新增) |
ArticleServiceTest |
21 |
纯 Mockito |
NutritionDeficiencyServiceTest |
14 |
纯 Mockito |
GuidePackageServiceTest |
13 |
纯 Mockito |
FoodServiceTest |
12 |
纯 Mockito |
ActivityServicePublishTest |
6 |
纯 Mockito + spy(本次新增) |
DataMigrationServiceTest |
11 |
纯 Mockito |
PdfParseServiceTest |
10 |
纯 Mockito |
ActivityAdminServiceTest |
10 |
纯 Mockito |
GuideHierarchyServiceTest |
10 |
纯 Mockito |
GuideApplicationServiceTest |
8 |
纯 Mockito |
GuideFamilyServiceTest |
7 |
纯 Mockito |
GuidePackageTemplateServiceTest |
6 |
纯 Mockito |
ServiceContentServiceTest |
6 |
纯 Mockito |
MiniGameServiceTest |
5 |
纯 Mockito |
TaskServiceMinigameTest |
5 |
纯 Mockito |
ServiceTypeServiceTest |
4 |
纯 Mockito |
TeacherLoginTest |
4 |
纯 Mockito |
集成测试(1 文件 / 4 用例)
| 测试文件 |
用例数 |
覆盖范围 |
GuideModuleIntegrationTest |
4 |
规划师模块集成流程 |
改进建议
1. 管理端发布功能测试覆盖情况
| 方法 |
所在 Service |
测试状态 |
测试文件 |
toggleStatus(Long id, String status) |
ArticleService |
✅ 已有 3 用例 |
ArticleServiceTest |
shelve(Long productId, Long vendorId, String action) |
ProductService |
✅ 本次新增 6 用例 |
ProductServiceTest |
publish(Long id) |
ActivityService |
✅ 本次新增 3 用例 |
ActivityServicePublishTest |
review(Long productId, String action, String rejectReason) |
ProductService |
✅ 本次新增 5 用例 |
ProductServiceTest |
2. 控制器层测试迁移
22 个控制器测试文件当前使用 @SpringBootTest,依赖 MySQL 连接。长期应逐步迁移为纯 Mockito 测试,消除数据库依赖,提升 CI 可靠性。
执行方式
# 纯 Mockito 测试(无需 MySQL)
cd cfc-backend && mvn test -Dtest="DimensionScoreServiceTest,ArticleServiceTest,FoodServiceTest,NutritionDeficiencyServiceTest,PdfParseServiceTest,ActivityAdminServiceTest,ProductServiceTest,ActivityServicePublishTest"
# 全量测试(需要 MySQL 连接)
cd cfc-backend && mvn test