REQ-USR-001 增加用户 — 功能测试证据(verify, round 0)
阶段:后端(backend)。本证据由 verify 子代理通过 Bash 后台分离子进程(
run_in_background)派发测试执行后,按结构化结果渲染。主会话从不内联跑测试,也不自由编写证据。 上游 spec:docs/superpowers/specs/2026-06-01-REQ-USR-001.md被测提交:78ddc80(HEAD)test(usr): 新增用户端到端验收回归 REQ-USR-001验证时间:2026-06-01 13:40 CST 运行环境:JDK 17(openjdk version "17.0.19",JAVA_HOME 固定/opt/homebrew/Cellar/openjdk@17/17.0.19/...;系统默认 JDK 25,按项目目标降级至 17);Maven/opt/homebrew/bin/mvn;数据库xlyweberp_vibe_erp_test,Flyway 已 apply 至 V1("Schema is up to date")。
1. 总判定
GREEN — 全部通过。 exit_code = 0,failed = 0,failed_list = 空。
| 指标 | 值 |
|---|---|
| 测试类总数 | 9 |
| 测试用例总数 | 24 |
| 通过 | 24 |
| 失败(failures) | 0 |
| 错误(errors) | 0 |
| 跳过(skipped) | 0 |
| 失败清单 | 无 |
24 = 19(Surefire 单元 / 集成
*Test)+ 5(UsrUserCreateIT端到端验收回归),与上游 TDD 摘要一致。
2. 派发命令与结构化结果
测试经独立后台分离子进程执行(独立于主会话推理循环),主会话仅消费结构化结果(command / exit_code / passed / failed / failed_list)。pom.xml 未配置 Failsafe 插件,Surefire 默认包含模式(*Test / Test* / *Tests)不匹配 *IT 后缀,故 *IT 端到端用例由第二条命令以 -Dtest 显式驱动执行,以覆盖 AC1/2/4/5/7。
命令 1 — 锁定单元闸(docs/04 § 零 unit)
{
"command": "mvn -q -B test",
"exit_code": 0,
"passed": 19,
"failed": 0,
"skipped": 0,
"failed_list": ""
}
命令 2 — 端到端验收回归(@SpringBootTest)
{
"command": "mvn -q -B test -Dtest=UsrUserCreateIT -DfailIfNoTests=false",
"exit_code": 0,
"passed": 5,
"failed": 0,
"skipped": 0,
"report_present": true
}
3. 逐类明细(Surefire 报告解析)
| 测试类 | 用例 | 失败 | 错误 | 跳过 | 耗时(s) | 覆盖 plan 任务 |
|---|---|---|---|---|---|---|
com.xly.erp.ErpApplicationTests |
1 | 0 | 0 | 0 | 2.553 | T1 contextLoads(Flyway apply V1) |
com.xly.erp.common.response.ResultTest |
2 | 0 | 0 | 0 | 0.021 | T2 Result/ResultCode |
com.xly.erp.common.exception.GlobalExceptionHandlerTest |
1 | 0 | 0 | 0 | 0.000 | T2 全局异常处理 |
com.xly.erp.common.security.JwtUtilTest |
1 | 0 | 0 | 0 | 0.086 | T3 JWT 工具 |
com.xly.erp.common.config.SecurityConfigTest |
1 | 0 | 0 | 0 | 0.187 | T3 Security/BCrypt/无状态 |
com.xly.erp.modules.usr.dto.CreateUserDTOValidationTest |
3 | 0 | 0 | 0 | 0.019 | T4 Bean Validation |
com.xly.erp.modules.usr.service.UsrUserServiceImplTest |
7 | 0 | 0 | 0 | 0.135 | T5+T6 查重/哈希/审计/关联校验/批量授权 |
com.xly.erp.modules.usr.controller.UsrUserControllerTest |
3 | 0 | 0 | 0 | 0.222 | T7 Controller 管理员前置/@Valid |
com.xly.erp.modules.usr.UsrUserCreateIT |
5 | 0 | 0 | 0 | 4.622 | T8 端到端 AC1/2/4/5/7 |
| 合计 | 24 | 0 | 0 | 0 | — | T1–T8 |
4. 验收标准(AC)覆盖核对
| AC | 描述 | 覆盖测试 | 状态 |
|---|---|---|---|
| AC1 | 正常新增:code=0、data.id 正整数、BCrypt 哈希落库、iIsVoid=0、审计字段已填 |
UsrUserCreateIT + UsrUserServiceImplTest
|
通过 |
| AC2 | 重复用户名 → 40901,事务回滚无新增 |
UsrUserCreateIT + UsrUserServiceImplTest(并发 DuplicateKey 兜底) |
通过 |
| AC3 | 参数非法 → 40001,无副作用 |
CreateUserDTOValidationTest + UsrUserControllerTest
|
通过 |
| AC4 | 权限组授权批量插入 + 去重 |
UsrUserCreateIT + UsrUserServiceImplTest
|
通过 |
| AC5 | 越权访问 → 40301 / 401,不创建记录 |
UsrUserCreateIT + UsrUserControllerTest
|
通过 |
| AC6 | 默认密码 666666 哈希入库 |
UsrUserServiceImplTest |
通过 |
| AC7 | 响应不含密码(仅 data.id) |
UsrUserCreateIT(sPassword @JsonIgnore) |
通过 |
5. 结论
exit_code = 0,failed = 0,24/24 用例全绿,无失败、无错误、无跳过;AC1–AC7 均有测试覆盖且通过。工作树在被测提交 78ddc80 处干净,未触碰 frontend/。判定 GREEN,可进入 review。