SuperAPI AI 工具集

322-frameworks-spring-boot-testing-integration-tests

测试与质量

查看项目

更新于 10-15 14:57

技能介绍

用途

该技能用于在 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 与集成测试。

使用方式

技能定义了如下工作流:

  1. 阅读参考文档并评估项目上下文:读取 references/322-frameworks-spring-boot-testing-integration-tests.md,并在提出改动前检查当前项目设置。
  2. 收集范围并确定目标改进:明确期望结果、约束以及最小安全改动集。
  3. 应用与框架一致的改动:按照参考模式与项目约定实现或重构配置/代码。
  4. 运行验证并报告结果:执行相应的构建/测试,并总结改动内容、验证结果及后续动作。

技能包含强制约束:

  • 在应用任何集成测试改动前,必须运行 ./mvnw compile 或 mvn compile。
  • 如果编译失败,必须立即停止。
  • 应用改进后,运行 ./mvnw clean verify 或 mvn clean verify 进行验证。
  • 应用前需阅读参考文档中的详细规则与正反模式。
  • 边界情况:若请求范围不明确,停止并提出澄清问题后再应用改动。
  • 边界情况:若缺少必要输入、文件或工具,报告缺失内容并询问是否继续提供设置指导。

适用场景

技能适用于以下情形:

  • 审查 Java 代码中的 Spring Boot 集成测试。
  • 在 Java 代码中应用 Spring Boot 集成测试最佳实践。
  • 使用 Testcontainers 编写 @SpringBootTest 集成测试。
  • 为 Spring 集成测试配置动态属性。
  • 审查 Spring Boot 集成测试 profile。

限制

技能要求改动前项目必须能够编译,编译失败即停止,不继续应用改动。改动后需执行完整验证。若请求范围不明确或缺少必要输入、文件、工具,技能要求停止并询问,而非自行假设。关于收费、价格、平台支持范围等信息,资料中暂未提供。