status: done created: 2026-08-04
forge-plugin-system 当前 JUnit 5 与 Mapper 动态代理测试风格,不启动 Spring 容器或真实数据库。execution-log.md。| 项目 | 值 |
|---|---|
| JUnit 版本 | JUnit Jupiter(由 spring-boot-starter-test 提供) |
| Mock 框架 | JDK 动态代理 Mapper + 简单测试替身 |
| 已有测试数量 | forge-plugin-system 当前 13 个测试源码文件 |
| 已有测试风格 | JUnit 5,直接构造 Service,使用动态代理隔离 Mapper |
SysDictDataServiceImpl| 方法 | 场景 | 输入 | Mapper 行为 | 预期结果 |
|---|---|---|---|---|
insertDictData |
同字典重复键值 | dictType=sys_status, dictValue=1 |
重复计数返回 1 | 抛 BusinessException,不执行 insert |
insertDictData |
非重复键值 | 同上 | 重复计数返回 0,insert 返回 1 | 返回 true,执行 insert |
updateDictData |
修改为其它项已有键值 | dictCode=2 |
selectById 返回当前项,排除 2 后计数返回 1 |
抛 BusinessException,不执行 update |
updateDictData |
仅修改自身其它字段 | dictCode=2 |
排除 2 后计数返回 0,update 返回 1 | 返回 true,执行 update |
SysDictDataMapper.xml:
dict_type = #{dictType}、dict_value = #{dictValue}、del_flag = 0。excludeDictCode 非空时包含 dict_code <> #{excludeDictCode}。SysConfigServiceCryptoGuardTest,确认 JUnit 基线可用。| 时间 | 范围 | 命令 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-08-04 | forge-plugin-system JUnit 基线 |
mvn -pl forge-framework/forge-plugin-parent/forge-plugin-system -am test -Penable-tests -Dtest=SysConfigServiceCryptoGuardTest -Dsurefire.failIfNoSpecifiedTests=false |
4/4 passed,BUILD SUCCESS | JDK 17,总耗时 37.055s |
| 时间 | 变更范围 | 必跑项 | 实际命令 | 结果 | 跳过/警告 |
|---|---|---|---|---|---|
| 2026-08-04 | Service 测试 Red | 定向测试 | 与 Green 相同的 Reactor 定向测试命令 | 4 tests,4 failures,符合预期 | 失败原因为未抛重复异常、未调用唯一性查询 |
| 2026-08-04 | Mapper/Service/测试 | 定向测试与 Reactor 编译 | mvn -pl forge-framework/forge-plugin-parent/forge-plugin-system -am test -Penable-tests -Dtest=SysDictDataServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false |
4/4 passed,BUILD SUCCESS | JDK 17,总耗时 17.926s |
| 2026-08-04 | forge-plugin-system |
模块全量单测 | 在模块目录执行 mvn test -Penable-tests |
56/56 passed,BUILD SUCCESS | 测试夹具产生预期 WARN/异常栈,不阻断 |
| 2026-08-04 | Mapper XML / 差异 | XML 解析、关键条件、格式 | xmllint --noout SysDictDataMapper.xml、rg、git diff --check |
passed | 用户已有 .DS_Store 变更未纳入本任务 |
execution-log.md:记录实际 Maven 和静态检查输出。V1.0.51 中现有唯一索引定义,未执行真实数据库查询。