test: 提升ActivityService测试覆盖率 - 新增21个边界条件和异常处理测试

- 新增calculateReward边界条件测试(null/empty tiers, 无达成层级)
- 新增calculateMultiLevelReward的null规则测试
- 新增generateLeaderboardCsv的topN边界条件测试
- 新增getActivityGraph的maxDepth和limit边界条件测试
- 新增API密钥验证异常路径测试(revoked, invalid hash, missing)
- 新增文件上传null contentType测试
- 新增活动访问权限额外场景测试

覆盖率提升:
- 分支覆盖率: 57.8% → 61% (+3.2%)
- Service包: 74% → 83% (+9%)
- 指令覆盖率: 84% → 85% (+1%)
- 行覆盖率: 90.56% → 92% (+1.44%)

距离70%目标还需55个分支,完成度87%
This commit is contained in:
Your Name
2026-03-03 11:17:33 +08:00
parent 92218e65fe
commit 376bbcd99a
3 changed files with 657 additions and 1 deletions

View File

@@ -72,7 +72,11 @@
"Bash(mvn test -Dtest=ActivityServiceCoverageTest 2>&1 | grep \"Tests run:\" | tail -1)",
"Bash(mvn test -Dtest=UserExperienceControllerTest 2>&1 | tail -20)",
"Bash(git add -A && git commit -m \"test: 提升UserExperienceController测试覆盖率\n\n- 新增4个测试用例覆盖分页边界和未测试端点\n - 测试invited-friends分页超出范围返回空列表\n - 测试rewards分页超出范围返回空列表\n - 测试getShareMeta端点默认模板\n - 测试getShareMeta端点自定义模板\n\n覆盖率提升:\n- UserExperienceController: 50% → 更高\n- Controller包: 63% → 67% \\(+4%\\)\n- 总体分支: 57.8% \\(374/646\\)\n- 测试用例: 8 → 12 \\(+4\\)\" 2>&1 | grep -E \"\\(test:|新增|覆盖率|files changed|insertions\\)\")",
"Bash(git add -A && git commit -m \"config: 优化JaCoCo配置采用务实的覆盖率目标\n\n调整内容\n1. 覆盖率目标从55-65%调整为70%\n2. 为report添加排除规则排除Lombok Builder类\n3. 排除entity和config包低价值代码\n\n理由\n- 当前57.8%覆盖率已覆盖大部分高价值业务逻辑\n- DTO包的157个未覆盖分支主要是Lombok生成代码\n- 采用务实目标70%专注Service和Controller业务逻辑\n- 避免为覆盖率指标而测试低价值的自动生成代码\n\n下一步\n- 继续提升Service包覆盖率当前74%\n- 继续提升Controller包覆盖率当前67%\n- 目标总体达到70%分支覆盖率\" 2>&1 | grep -E \"\\(config:|调整|理由|files changed|insertions\\)\")"
"Bash(git add -A && git commit -m \"config: 优化JaCoCo配置采用务实的覆盖率目标\n\n调整内容\n1. 覆盖率目标从55-65%调整为70%\n2. 为report添加排除规则排除Lombok Builder类\n3. 排除entity和config包低价值代码\n\n理由\n- 当前57.8%覆盖率已覆盖大部分高价值业务逻辑\n- DTO包的157个未覆盖分支主要是Lombok生成代码\n- 采用务实目标70%专注Service和Controller业务逻辑\n- 避免为覆盖率指标而测试低价值的自动生成代码\n\n下一步\n- 继续提升Service包覆盖率当前74%\n- 继续提升Controller包覆盖率当前67%\n- 目标总体达到70%分支覆盖率\" 2>&1 | grep -E \"\\(config:|调整|理由|files changed|insertions\\)\")",
"Bash(mvn test -Dtest=ActivityServiceCoverageTest -q)",
"Bash(mvn clean test jacoco:report -q 2>&1 | tail -100)",
"Bash(cat > /tmp/coverage_summary.txt << 'EOF'\n# 测试覆盖率提升报告 - 2026-03-03\n\n## 总体覆盖率\n\n| 指标 | 未覆盖 | 总数 | 覆盖率 | 之前 | 提升 |\n|------|--------|------|--------|------|------|\n| **指令覆盖率** | 1,486 | 10,426 | **85%** | 84% | +1% |\n| **分支覆盖率** | 250 | 646 | **61%** | 57.8% | +3.2% |\n| **行覆盖率** | 184 | 2,327 | **92%** | 90.56% | +1.44% |\n| **方法覆盖率** | 89 | 921 | **90%** | - | - |\n| **类覆盖率** | 4 | 110 | **96%** | - | - |\n\n## 各包覆盖率详情\n\n| 包名 | 指令覆盖率 | 分支覆盖率 | 说明 |\n|------|-----------|-----------|------|\n| **service** | 91% | **83%** | ⬆️ 从74%提升到83% \\(+9%\\) |\n| **controller** | 96% | 67% | ⬆️ 从67%保持稳定 |\n| **domain** | 83% | 91% | ✅ 优秀 |\n| **security** | 91% | 82% | ✅ 优秀 |\n| **web** | 89% | 78% | ✅ 良好 |\n| **sdk** | 93% | 66% | ✅ 良好 |\n| **config** | 96% | 100% | ✅ 完美 |\n| **job** | 100% | 100% | ✅ 完美 |\n| **dto** | 55% | 5% | ⚠️ Lombok代码 |\n\n## 本次工作成果\n\n### 新增测试\n- **ActivityServiceCoverageTest**: +21个测试用例\n- 总测试数: 1360 → 1381 \\(+21\\)\n\n### 覆盖率提升\n- **分支覆盖率**: 57.8% → 61% \\(+3.2%\\)\n- **Service包分支覆盖率**: 74% → 83% \\(+9%\\)\n- **指令覆盖率**: 84% → 85% \\(+1%\\)\n- **行覆盖率**: 90.56% → 92% \\(+1.44%\\)\n\n### 新增测试覆盖的场景\n1. calculateReward边界条件null/empty tiers, no tier achieved\n2. calculateMultiLevelReward的null规则\n3. generateLeaderboardCsv的topN边界条件\n4. getActivityGraph的maxDepth和limit边界条件\n5. validateApiKeyByPrefix的异常路径revoked, invalid hash, missing\n6. validateAndMarkApiKeyUsed的异常路径\n7. uploadCustomizationImage的null contentType\n8. accessActivity的额外场景\n\n## 距离70%目标\n\n- **当前**: 61% \\(396/646 branches\\)\n- **目标**: 70% \\(451/646 branches\\)\n- **差距**: 55个分支\n- **完成度**: 87%\n\n## 下一步建议\n\n继续提升Service和Controller包的覆盖率预计再增加30-40个测试用例即可达到70%目标。\n\nEOF\ncat /tmp/coverage_summary.txt)",
"Bash(git add -A && git status)"
]
}
}