mcpField
1
132-java-testing-integration-testing

132-java-testing-integration-testing

github.com/jabrenaTesting & quality456381 installsUpdated 1d ago
Repository

About 132-java-testing-integration-testing

A skill for Java developers creating or reviewing integration tests around HTTP dependencies. It outlines WireMock setup, isolated stubs, fault injection, and request verification, with compile-before-change and full-build checks.

Key features

  1. 01Detect HTTP client integrations
  2. 02Set up a BaseIntegrationTest
  3. 03Use WireMock with dynamic ports
  4. 04Register isolated per-test stubs
  5. 05Inject service errors and latency
  6. 06Verify outgoing requests

Use cases

  1. 01Build Java HTTP integration tests
  2. 02Test services with stubbed dependencies
  3. 03Check handling of outages and delays
  4. 04Review integration test setup

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jabrena/plinth --skill 132-java-testing-integration-testing

After installing, type/132-java-testing-integration-testingin Claude Code to confirm it loaded.

Bundled filesreferences/132-java-testing-integration-testing.md

Details

From the project README

Java Integration testing guidelines

Set up robust integration-test infrastructure for Java services using WireMock to stub outbound HTTP dependencies.

What is covered in this Skill?

  • Infrastructure topology detection: scanning imports for HttpClient, feign.*, retrofit2.*, RestTemplate
  • Abstract BaseIntegrationTest base class
  • WireMockExtension with @RegisterExtension, dynamic port allocation (dynamicPort())
  • usingFilesUnderClasspath(wiremock), @BeforeAll + System.setProperty() for coordinate propagation
  • WireMock JSON mapping files (bodyFileName referencing wiremock/files/)
  • Programmatic stub registration via WireMock DSL
  • Per-test stub isolation: register stubs inside each test method
  • Fault injection: 503 service unavailable, network latency with withFixedDelay
  • Request verification via WIREMOCK.verify
  • wiremock-standalone Maven dependency (test scope)
  • Anti-patterns: global @BeforeAll stubs, Mockito-mocked HTTP clients, hardcoded ports or URLs

Scope: The reference is organized by examples (good/bad code patterns) for each core area. Apply recommendations based on applicable examples.

Constraints

Before applying any integration test changes, ensure the project compiles. If compilation fails, stop immediately — do not proceed until resolved. After applying improvements, run full verification.

  • MANDATORY: Run ./mvnw compile or mvn compile before applying any change
  • SAFETY: If compilation fails, stop immediately and do not proceed — compilation failure is a blocking condition
  • VERIFY: Run ./mvnw clean verify or mvn clean verify after applying improvements
  • BEFORE APPLYING: Read the reference for detailed examples, good/bad patterns, and constraints

When to use this skill

  • Review Java code for integration tests
  • Apply best practices for integration tests in Java code
  • Write Java integration tests with real infrastructure boundaries
  • Improve Testcontainers integration tests for Java code
  • Review integration test setup and teardown in Java projects

Workflow

  1. Compile project before integration-test changes

Run ./mvnw compile or mvn compile and stop immediately if compilation fails.

  1. Read integration-testing reference and detect topology

Read references/132-java-testing-integration-testing.md and detect HTTP client and external dependency integration points.

  1. Set up resilient integration-test infrastructure

Implement BaseIntegrationTest, WireMock mappings/stubs, per-test isolation, and verification patterns.

  1. Verify with full build

Run ./mvnw clean verify or mvn clean verify after applying improvements.

Reference

For detailed guidance, examples, and constraints, see references/132-java-testing-integration-testing.md.

Comments

Markdown supported