0 Tage Serie
java / expert
Snippet

Simulation von Downstream-Fehlern mittels WebTestClient ExchangeFilterFunction

Beim Testen von Resilienzmustern wie Circuit Breakern in WebFlux-Anwendungen können Entwickler benutzerdefinierte `ExchangeFilterFunction`-Lambdas in `WebTestClient`- oder `WebClient`-Instanzen einspeisen, um den Ausführungssteuerfluss abzufangen und Netzwerkaufrufe durch synthetische HTTP-Antworten zu ersetzen.

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
Erklärung
1
public static ExchangeFilterFunction injectError(HttpStatus status)
Factory-Methode, die einen funktionalen reaktiven Filter für HTTP-Client-Test-Interzeptoren liefert.
2
return (request, next) -> {
Implementiert das funktionale Interface zur Abbildung der Request-Response-Transformationslogik.
3
if (request.url().getPath().contains("/external-api")) {
Wertet Pfadkriterien im Steuerfluss aus, um externe Aufrufe gezielt abzufangen.
4
return Mono.just(ClientResponse.create(status)
Kürzt den Steuerfluss ab und gibt direkt eine synthetische reaktive ClientResponse zurück.