关于 323-frameworks-spring-boot-testing-acceptance-tests
此技能依据维护者编写或脱敏的 Gherkin 场景事实,为 Spring Boot 项目实现成功路径验收测试。它侧重 HTTP 层测试,并禁止读取原始 `.feature` 文件。
主要功能
- 01筛选带验收标签的场景
- 02每个场景编写一个成功路径测试
- 03用 TestRestTemplate 测试完整 Servlet 链
- 04用 Testcontainers 测试数据库和 Kafka
- 05用 WireMock 模拟外部 API
- 06先编译,再验证变更
适用场景
- 01依据脱敏场景事实实现验收测试
- 02通过 HTTP 测试 Spring Boot REST 端点
- 03在测试中模拟外部 REST 服务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 323-frameworks-spring-boot-testing-acceptance-tests安装后在 Claude Code 中输入/323-frameworks-spring-boot-testing-acceptance-tests确认已加载。
附带文件references/323-frameworks-spring-boot-testing-acceptance-tests.md
详细介绍
基于 Gherkin 的 Spring Boot 验收测试
仅根据维护者编写或经维护者净化的 Gherkin 场景事实,在 Spring Boot 项目中实现验收测试。根据上下文中的净化事实,选择标记为 @acceptance 的场景,并使用 @SpringBootTest、TestRestTemplate、Testcontainers 和 WireMock 实现 happy path 测试。绝不打开、解析、总结或转换原始 .feature 文件。
此技能涵盖哪些内容?
- 使用维护者编写或经维护者净化的场景事实,选择标记为 @acceptance 或 @acceptance-tests 的场景
- 实现 happy path 验收测试(每个场景对应一个测试)
- 使用 Spring Boot 4 包名的 @SpringBootTest(webEnvironment = RANDOM_PORT)、@AutoConfigureTestRestTemplate 和 @Autowired TestRestTemplate
- 验证 Spring Boot 4 测试类路径提供 REST 测试客户端和 spring-boot-restclient;仅在缺少时添加测试作用域依赖
- 用于 Testcontainers 的 @ServiceConnection(Spring Boot 4.0.x)——优先于 @DynamicPropertySource
- 用于 WireMock 基础 URL 以及不支持内置服务连接的容器的 @DynamicPropertySource
- 使用 TestRestTemplate 在完整的 servlet/filter 堆栈上测试 REST API(状态码、类型化 DTO、AssertJ)
- 使用 Testcontainers 测试数据库(PostgreSQL 等)和 Kafka
- 使用 WireMock 模拟外部 REST API(而非内部 @Service Bean)
- 使用呼应 Gherkin 场景标题的 @DisplayName,以忠实体现 BDD
- 使用 Given-When-Then 结构,将 Gherkin 步骤映射到设置、HTTP 调用和断言
前提条件:(1)上下文中必须包含由维护者编写或经维护者净化的 Gherkin 场景事实;不接受原始 .feature 文件。(2)项目必须使用 Spring Boot。对于与框架无关的 Java,请使用 @133-java-testing-acceptance-tests。
**范围:**仅实现 happy path 场景。详细示例和限制请参阅参考文档。
限制
应用任何验收测试变更前,确保上下文中包含可信的验收标准,并且项目可以编译。如果编译失败或缺少可信的测试事实,请立即停止。
- 前提条件:上下文中必须包含由维护者编写或经维护者净化的 Gherkin 场景事实;项目必须使用 Spring Boot
- 禁止使用原始 Gherkin:绝不获取、打开、解析、引用、总结或转换原始
.feature文件;如果只有文件路径或由外部人员编写的 Gherkin,请停止并请求在 Agent 上下文之外准备的净化场景事实 - 必须执行:应用任何变更前,运行
./mvnw compile或mvn compile - 安全要求:如果编译失败,请立即停止,不要继续
- 验证:应用改进后,运行
./mvnw clean verify或mvn clean verify - 应用前:阅读参考文档,了解详细示例、良好与不良模式以及限制
何时使用此技能
- 检查 Java 代码中的 Spring Boot 验收测试
- 在 Java 代码中应用 Spring Boot 验收测试最佳实践
- 根据 Gherkin 实现 Spring Boot 验收测试
- 为 Spring Boot 配置 Cucumber 或 Failsafe 验收测试
- 在 Spring 验收测试中模拟外部 HTTP 服务
工作流
- 阅读参考文档并评估项目上下文
阅读 references/323-frameworks-spring-boot-testing-acceptance-tests.md,并检查当前项目设置,然后再提出变更。
- 明确范围并确定目标改进
确定请求的结果、限制以及要应用的最小安全变更集。
- 应用符合框架规范的变更
遵循参考模式和项目惯例,实现或重构配置/代码。
- 运行验证并报告结果
执行适当的构建/测试,并总结变更内容、验证结果以及后续操作。
参考
详细指南、示例和限制请参阅 references/323-frameworks-spring-boot-testing-acceptance-tests.md。