java / expert
Snippet
Simulating Downstream Failures via WebTestClient ExchangeFilterFunction
When testing resiliency patterns like Circuit Breakers or Retry mechanisms in WebFlux applications, developers can inject custom `ExchangeFilterFunction` lambdas into `WebTestClient` or `WebClient` instances to intercept request execution control flow and substitute real network calls with synthetic HTTP responses.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
public class CircuitBreakerTestFilter {public static ExchangeFilterFunction injectError(HttpStatus status) {return (request, next) -> {if (request.url().getPath().contains("/external-api")) {return Mono.just(ClientResponse.create(status).header("Content-Type", "application/json").build());}return next.exchange(request);};}}
spring
Breakdown
1
public static ExchangeFilterFunction injectError(HttpStatus status)
Factory method returning a functional reactive filter for HTTP client test interceptors.
2
return (request, next) -> {
Implements the functional interface representing request-response transformation logic.
3
if (request.url().getPath().contains("/external-api")) {
Evaluates control flow path matching criteria to target external service invocation URIs.
4
return Mono.just(ClientResponse.create(status)
Short-circuits network invocation control flow by returning a mock reactive ClientResponse.