Keep the service test isolated from the network. Inject a client abstraction, mock it for unit tests, and use WireMock for an integration-style HTTP contract test. This lets the test exercise serialization, status handling, timeouts, and retry behavior without depending on a live third-party service. ```java @ExtendWith(MockitoExtension.class) class PaymentServiceTest { @Mock PaymentClient client; @InjectMocks PaymentService service; @Test void mapsClientFailureToDomainFailure() { when(client...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill spring-boot-testing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Spring Boot Testing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-spring-boot-testing-4ae46a0f)More formats (shields.io, HTML) on the badges page.
Keep the service test isolated from the network. Inject a client abstraction, mock it for unit tests, and use WireMock for an integration-style HTTP contract test. This lets the test exercise serialization, status handling, timeouts, and retry behavior without depending on a live third-party service.
```java
@ExtendWith(MockitoExtension.class)
class PaymentServiceTest {
@Mock PaymentClient client;
@InjectMocks PaymentService service;
@Test
void mapsClientFailureToDomainFailure() {
when(client.charge(any())).thenThrow(new TimeoutException());
assertThatThrownBy(() -> service.pay(request()))
.isInstanceOf(PaymentUnavailable.class);
}
}
```
Use AssertJ rather than JUnit assertion methods, and verify that only known transient errors are retried with bounded backoff. For the HTTP adapter, run WireMock with deterministic responses for success, timeout, malformed payload, 4xx, 5xx, and retry exhaustion; do not perform uncontrolled network I/O in tests. Keep external-client tests separate from domain unit tests, use Testcontainers for real infrastructure when needed, and use JaCoCo to identify untested branches rather than chasing a percentage alone.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!