backend-test-report-2026-06-27.md 6.1 KB

后端测试报告

生成日期: 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