mcpField
1
132-java-testing-integration-testing

132-java-testing-integration-testing

github.com/jabrena测试与质量456381 次安装1 天前更新
代码仓库

关于 132-java-testing-integration-testing

面向 Java 开发者的集成测试技能,适用于创建或审查涉及 HTTP 依赖的测试。内容涵盖 WireMock 设置、独立存根、故障注入和请求验证,并要求修改前编译、之后执行完整构建检查。

主要功能

  1. 01检测 HTTP 客户端集成点
  2. 02设置 BaseIntegrationTest
  3. 03使用动态端口配置 WireMock
  4. 04为每个测试注册独立存根
  5. 05注入服务错误与延迟
  6. 06验证传出的请求

适用场景

  1. 01编写 Java HTTP 集成测试
  2. 02用存根依赖测试服务
  3. 03检查服务中断和延迟处理
  4. 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-standalone Maven 依赖(test scope)
  • 反模式:全局 @BeforeAll 桩、使用 Mockito 模拟 HTTP 客户端、硬编码端口或 URL

范围: 本参考按示例(好的/坏的代码模式)组织,涵盖每个核心领域。请根据适用示例应用建议。

约束

在应用任何集成测试更改之前,确保项目能够编译。如果编译失败,请立即停止——解决问题后再继续。改进完成后,运行完整验证。

  • 强制要求:应用任何更改之前,运行 ./mvnw compile 或 mvn compile
  • 安全要求:如果编译失败,请立即停止,不要继续——编译失败属于阻断条件
  • 验证要求:应用改进后,运行 ./mvnw clean verify 或 mvn clean verify
  • 应用更改之前:阅读参考文档,了解详细示例、好的/坏的模式和约束

何时使用此技能

  • 审查 Java 代码中的集成测试
  • 在 Java 代码中应用集成测试最佳实践
  • 使用真实基础设施边界编写 Java 集成测试
  • 改进 Java 代码的 Testcontainers 集成测试
  • 审查 Java 项目中的集成测试设置与拆除

工作流

  1. 在修改集成测试之前编译项目

运行 ./mvnw compile 或 mvn compile;如果编译失败,请立即停止。

  1. 阅读集成测试参考并检测拓扑

阅读 references/132-java-testing-integration-testing.md,并检测 HTTP 客户端和外部依赖集成点。

  1. 搭建可靠的集成测试基础设施

实现 BaseIntegrationTest、WireMock 映射/桩、每个测试单独隔离以及验证模式。

  1. 通过完整构建进行验证

应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。

参考

有关详细指南、示例和约束,请参阅 references/132-java-testing-integration-testing.md。

评论

支持 Markdown