Use when you need to set up, review, or improve Java integration tests — including generating a BaseIntegrationTest.java with WireMock for HTTP stubs, detecting HTTP client infrastructure from import signals, injecting service coordinates dynamically via System.setProperty(), creating WireMock JSON mapping files with bodyFileName, isolating stubs per test method, verifying HTTP interactions, or eliminating anti-patterns such as Mockito-mocked HTTP clients or globally registered WireMock stubs. T
SkillScore82Maintained
Automatic
◆QA & Test Engineering pack
Last verified 8/20/2026
What it changes
Passed 16 of 20 test cases with the skill, and 10 of 20 without it.
Without skill50%
With skill82%
Checks it passed that the model alone missed
Includes the artifactId wiremock-standalone.
Defines an abstract BaseIntegrationTest base class.
Instructs stopping immediately if compilation fails.
and 7 more in the full report
7 fixed11 passed either way4 still failing0 broke
Pass-rate lift
+32 pp
Tokens
+12%
Agent turns
0%
Response time
-20%
Model gemini-3.6-flashMeasured 8/20/2026v118 of 22 cases passed with skill · 20 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
Before applying changes to fix broken integration tests in a Maven Java project, what build verification command must be executed first to ensure the project compiles?
What was checked, without and with the skill
Checked
Without skill
With skill
Specifies executing ./mvnw compile or mvn compile prior to applying code changes.
Missed
Passed
Instructs stopping immediately if compilation fails.
Missed
Passed
case-13 · gemini-3.6-flash · 8/20/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md58 lines2 files
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
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
Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional