用途
该技能用于在 Java 项目中编写或改进 Spring Boot 集成测试,适用版本为 Spring Boot 4.0.x。其定位是依据参考规则与正反代码示例,给出集成测试相关的配置与代码改进建议。
主要能力
技能覆盖以下集成测试主题:
- 集成测试的范围与目的:验证装配(wiring)与契约,而不是重复单元测试。
- Testcontainers 配合 @ServiceConnection 实现零配置装配(推荐做法)。
- 当容器没有内置服务连接支持时,使用 @DynamicPropertySource 作为回退方案。
- 使用静态 @Container 实例在多个测试方法间共享,以提升性能。
- 使用 MockMvcTester 进行基于 AssertJ 的流式 HTTP 断言(Spring Boot 4.0.x)。
- 使用 TestRestTemplate 进行完整 HTTP 栈测试。
- 使用 @DataJdbcTest / @DataJpaTest 持久层切片,仅加载持久层以加快启动。
- 数据隔离:每个测试拥有自己的场景,不依赖共享可变状态或执行顺序假设。
- 使用 @MockitoBean 注册 mock(Spring Boot 4.0.x 中 @MockBean 已被移除)。
- 资源生命周期:通过 Testcontainers 的 JUnit 集成完成清理;区分 *IT 与集成测试。
使用方式
技能定义了如下工作流:
- 阅读参考文档并评估项目上下文:读取 references/322-frameworks-spring-boot-testing-integration-tests.md,并在提出改动前检查当前项目设置。
- 收集范围并确定目标改进:明确期望结果、约束以及最小安全改动集。
- 应用与框架一致的改动:按照参考模式与项目约定实现或重构配置/代码。
- 运行验证并报告结果:执行相应的构建/测试,并总结改动内容、验证结果及后续动作。
技能包含强制约束:
- 在应用任何集成测试改动前,必须运行 ./mvnw compile 或 mvn compile。
- 如果编译失败,必须立即停止。
- 应用改进后,运行 ./mvnw clean verify 或 mvn clean verify 进行验证。
- 应用前需阅读参考文档中的详细规则与正反模式。
- 边界情况:若请求范围不明确,停止并提出澄清问题后再应用改动。
- 边界情况:若缺少必要输入、文件或工具,报告缺失内容并询问是否继续提供设置指导。
适用场景
技能适用于以下情形:
- 审查 Java 代码中的 Spring Boot 集成测试。
- 在 Java 代码中应用 Spring Boot 集成测试最佳实践。
- 使用 Testcontainers 编写 @SpringBootTest 集成测试。
- 为 Spring 集成测试配置动态属性。
- 审查 Spring Boot 集成测试 profile。
限制
技能要求改动前项目必须能够编译,编译失败即停止,不继续应用改动。改动后需执行完整验证。若请求范围不明确或缺少必要输入、文件、工具,技能要求停止并询问,而非自行假设。关于收费、价格、平台支持范围等信息,资料中暂未提供。