用途:为 Spring Boot 3 应用编写单元测试、集成测试与切片测试提供规范,优先级为 P0(关键)。
主要能力与规则: [BE-TEST-01] 等价用例优先使用 @ParameterizedTest(@CsvSource、@MethodSource);不同场景可保留独立测试方法,评审不得在无行为差异时强制参数化改写。 [BE-TEST-02] 禁止对原始 SQL 使用字符串匹配式 mock;纯领域计算直接测试,数据库仓储验证使用 Testcontainers。 [BE-TEST-03] 禁止浅断言,不能只写 assertThat(result).isNotNull(),需检查领域字段、状态码与不变量。 [BE-TEST-04] 禁止直通式接口 mock;仓储与服务处理器需验证契约符合性与错误映射。 [BE-TEST-05] 缺陷优先回归锁定:修复 bug 或标题为 fix(...) 的 PR 必须先加入复现缺陷的测试。
使用方式:遵循 TDD 流程——Red 写失败测试(如返回 404),Green 写最小实现使其通过,Refactor 在测试保持绿色下清理。切片与集成测试使用 Testcontainers 提供 DB/队列等真实基础设施,避免 H2/嵌入式;断言使用 AssertJ(assertThat)而非 JUnit 断言;切片测试用 @MockBean 隔离下游依赖。覆盖率作为诊断与项目配置项,验证风险加权的关键路径而非凑百分比。
反模式:无行为差异的参数化改写、脆弱的 SQL 字符串匹配 mock、浅断言、直通式 mock 回显、无复现测试的缺陷修复。另需避免在基类使用 @MockBean(会按测试重载上下文)、测试中出现网络 I/O(用 WireMock 模拟外部调用)、测试中使用 System.out(改用 AssertJ 断言)。
限制:资料未提供具体安装命令、依赖版本、平台要求与收费信息。