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.
 
 
 

3.9 KiB

W2-T7 顺序测试修复复审报告

Verdict

PASS

  • 复审对象:mydreamjob-server/src/test/java/com/mydreamjob/skill/SkillLearningPathServiceTest.java
  • 对照报告:changes/n03-skill-cloud/.superpowers/sdd/reviews/W2-T7.md
  • 生产服务基线:fca1160 feat: add skill learning path service
  • 结论:T7-I1 已关闭;当前顺序测试可证伪,原有 T7 行为测试未回归,未发现 T8 实现。

Finding 关闭状态

T7-I1:测试无法阻止学习路径按名称重排

已关闭。

  1. Mockito 场景的输入名称和 ID 均不等于自然升序:

    • SkillLearningPathServiceTest.java:135-139
    • 名称输入为 Skill Z -> Skill A -> Skill M,自然升序为 Skill A -> Skill M -> Skill Z。
    • ID 输入为 30 -> 10 -> 20,自然升序为 10 -> 20 -> 30。
    • SkillLearningPathServiceTest.java:155-156 显式断言输入名称、ID 都不等于自然排序结果。
    • SkillLearningPathServiceTest.java:157-165 读取服务返回对象,并严格断言返回 ID 为 30, 10, 20、名称为 Skill Z, Skill A, Skill M。
    • 因此,生产实现若按名称或 ID 重排,现有测试必然失败。
  2. 断言读取的是服务返回结果,而不是只验证 Mockito 输入:

    • SkillLearningPathServiceTest.java:157-165 使用 response.items() 的 skillId 和 skillName 做精确顺序断言。
    • SkillLearningPathServiceTest.java:160-162 同时断言优先级严格为 1, 2, 3。
    • 满足“返回顺序、priority 和技能 ID”均被验证的要求。
  3. 新增 V36 真实数据场景覆盖不同热度分组和名称顺序:

    • SkillLearningPathServiceTest.java:89-121
    • 使用教育行业 3、教学设计职位 9 调用真实 SkillMatchService 和 SkillLearningPathService。
    • SkillLearningPathServiceTest.java:102-110 断言缺失技能共 10 项、存在多个不同热度值,且名称和 ID 顺序均不等于自然升序。
    • SkillLearningPathServiceTest.java:112-120 将服务返回的 skillId、skillName 与 matchResponse.missingSkills() 的顺序做严格比较,并断言优先级为 1..10。
    • 因此,真实数据场景不是仅验证输入或数量,而是验证了学习路径严格复用匹配结果的缺失技能顺序。
  4. 原有 T7 行为测试未回归:

    • 四类模板测试:SkillLearningPathServiceTest.java:176-265,包括编程语言、框架、工具、通用能力、未知/空模板及分类不存在回退。
    • 空路径测试:SkillLearningPathServiceTest.java:268-280,断言 total=0、空列表且不访问分类仓储。
    • 重复调用测试:SkillLearningPathServiceTest.java:282-309,断言顺序、优先级和文本一致。
    • 本次修复仅修改测试文件;SkillLearningPathService.java 相对 fca1160 的生产差异为空。
  5. 未发现 T8 实现:

    • 当前 HEAD 仍为 fca1160。
    • 源码和测试目录未发现 SkillCloudController、SkillLearningPathController、/skills 词云或学习路径接口及对应安全配置变更。
    • 未发现超出 T7 范围的生产实现。

独立测试结果

环境:JDK 17.0.16、Maven 3.9.7。

执行命令:

$env:JAVA_HOME='D:\java\jdk'
& 'D:\maven\apache-maven-3.9.7\bin\mvn.cmd' '-Dtest=SkillTaxonomyMigrationTest,SkillCloudSeedDataIntegrationTest,SkillTaxonomyRepositoryTest,SkillCloudQueryServiceTest,SkillMatchServiceTest,SkillLearningPathServiceTest' test

结果:

Tests run: 50, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

分类统计:

SkillTaxonomyMigrationTest:              2 passed
SkillCloudSeedDataIntegrationTest:       8 passed
SkillTaxonomyRepositoryTest:             6 passed
SkillCloudQueryServiceTest:              8 passed
SkillMatchServiceTest:                  16 passed
SkillLearningPathServiceTest:           10 passed

剩余阻断项

无。T7-I1 已关闭,允许进入 T8 评审前置流程。