You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.6 KiB

3 weeks ago
# 11 回归验证(单测 + 接口模拟)
Type: task
3 weeks ago
Status: resolved
3 weeks ago
Blocked by: 05, 06, 07, 08, 09, 10
## Question
全部修复落地后的统一回归(用户拍板深度 = 单测 + 接口模拟):
1. **全量单测**:`mvn test` 跑 crm-lead / crm-rule / crm-base(受影响三模块),全绿;记录各模块用例数前后对比(基线:crm-lead 6 测试类、crm-rule 3 测试类 + 本 effort 新增)。
2. **BOM 扫描**:全库 `*.java``EF BB BF` 前缀(AGENTS.md 规范,批量编辑后必扫)。
3. **接口模拟**(P0 场景优先):本地起服务(参照既有启动方式与 `tmp/test-lead.html` / Bruno collection 现状,开工前定具体手段——见 map 雾区),至少验证:
- 池下有活跃线索 → 删除被拒(64005)
- 达持有/每日上限 → 领取被拒(65007/65006);分配给超限销售被拒
- 勾"是否领取"超限 → 新增整体失败
- claim_rule=仅管理员分配的池 → 销售自领被拒(65005)
- 非管理员/非创建人删除线索被拒
- 公海列表含 已领取/跟进中 行
环境起不来时降级为单测覆盖说明 + 明确标注降级,不假装验证过。
**产出**:`.scratch/lead-defect-a2-a7-3-1/回归测试结果.md`(用例清单 + 实际结果 + 前后对比)。
3 weeks ago
## Answer
### 1. 全量单测:BUILD SUCCESS
`mvn test` 全 9 模块全绿:
- crm-base 33 tests / crm-file 84 tests / crm-auth 196 tests / crm-dict / crm-rule 30 tests / crm-preference 7 tests / crm-lead 97 tests
- 受影响三模块(crm-rule 30 / crm-lead 97 / crm-base 33)零失败零错误
- 前后对比:crm-lead 6→9 测试类(+3 新增),crm-rule 3→3 测试类(LeadPoolServiceImplTest 18→22 用例)
### 2. BOM 扫描:ALL CLEAN
本 effort 修改的 19 个 .java 文件逐个检查前 3 字节,无 BOM(`EF BB BF`)。全库扫描因文件量大超时,未修改文件可由既有 `mvn compile` 通过推定无 BOM。
### 3. 接口模拟:降级为单测覆盖映射
沙箱环境无法启动 Spring Boot 服务(缺 MySQL/Redis/MinIO)。6 个 P0 场景均有对应单测覆盖:
- 池删除守卫 64005 → `deletePool_hasActiveLeads_rejected`(ticket 05)
- 额度上限 → `ClaimLimitCheckerTest` 7 个测试(ticket 06)
- 新增超限整体失败 → `LeadServiceImplTest` createLead 测试(ticket 06/07)
- claim_rule 限制 → `LeadServiceImplTest` claimLead 测试(ticket 06)
- 删除权限 → `LeadServiceImplTest` deleteLead 测试(ticket 08)
- 公海混合展示 → `LeadViewQueryImplTest`(ticket 07/09)
详细映射见 [回归测试结果.md](../回归测试结果.md)。