关于 132-java-testing-integration-testing
面向 Java 开发者的集成测试技能,适用于创建或审查涉及 HTTP 依赖的测试。内容涵盖 WireMock 设置、独立存根、故障注入和请求验证,并要求修改前编译、之后执行完整构建检查。
主要功能
- 01检测 HTTP 客户端集成点
- 02设置 BaseIntegrationTest
- 03使用动态端口配置 WireMock
- 04为每个测试注册独立存根
- 05注入服务错误与延迟
- 06验证传出的请求
适用场景
- 01编写 Java HTTP 集成测试
- 02用存根依赖测试服务
- 03检查服务中断和延迟处理
- 04审查集成测试设置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jabrena/ plinth --skill 132-java-testing-integration-testing安装后在 Claude Code 中输入/132-java-testing-integration-testing确认已加载。
附带文件references/132-java-testing-integration-testing.md
详细介绍
Java 集成测试指南
使用 WireMock 模拟出站 HTTP 依赖,为 Java 服务搭建可靠的集成测试基础设施。
此技能涵盖哪些内容?
- 基础设施拓扑检测:扫描
HttpClient、feign.*、retrofit2.*、RestTemplate的导入语句 - 抽象的
BaseIntegrationTest基类 - 使用
@RegisterExtension的WireMockExtension、动态分配端口(dynamicPort()) usingFilesUnderClasspath(wiremock)、@BeforeAll和用于传递坐标的System.setProperty()- WireMock JSON 映射文件(
bodyFileName引用wiremock/files/) - 通过 WireMock DSL 以编程方式注册桩
- 每个测试单独隔离桩:在各测试方法中注册桩
- 故障注入:503 服务不可用、使用
withFixedDelay模拟网络延迟 - 通过
WIREMOCK.verify验证请求 wiremock-standaloneMaven 依赖(test scope)- 反模式:全局
@BeforeAll桩、使用 Mockito 模拟 HTTP 客户端、硬编码端口或 URL
范围: 本参考按示例(好的/坏的代码模式)组织,涵盖每个核心领域。请根据适用示例应用建议。
约束
在应用任何集成测试更改之前,确保项目能够编译。如果编译失败,请立即停止——解决问题后再继续。改进完成后,运行完整验证。
- 强制要求:应用任何更改之前,运行
./mvnw compile或mvn compile - 安全要求:如果编译失败,请立即停止,不要继续——编译失败属于阻断条件
- 验证要求:应用改进后,运行
./mvnw clean verify或mvn clean verify - 应用更改之前:阅读参考文档,了解详细示例、好的/坏的模式和约束
何时使用此技能
- 审查 Java 代码中的集成测试
- 在 Java 代码中应用集成测试最佳实践
- 使用真实基础设施边界编写 Java 集成测试
- 改进 Java 代码的 Testcontainers 集成测试
- 审查 Java 项目中的集成测试设置与拆除
工作流
- 在修改集成测试之前编译项目
运行 ./mvnw compile 或 mvn compile;如果编译失败,请立即停止。
- 阅读集成测试参考并检测拓扑
阅读 references/132-java-testing-integration-testing.md,并检测 HTTP 客户端和外部依赖集成点。
- 搭建可靠的集成测试基础设施
实现 BaseIntegrationTest、WireMock 映射/桩、每个测试单独隔离以及验证模式。
- 通过完整构建进行验证
应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。
参考
有关详细指南、示例和约束,请参阅 references/132-java-testing-integration-testing.md。
评论
支持 Markdown