Spring Cloud Gateway-Tests schlagen nach dem Upgrade auf Spring Boot 3.4.0 (insbesondere Spring-Web 6.2.0) fehl.Java

Java-Forum
Guest
 Spring Cloud Gateway-Tests schlagen nach dem Upgrade auf Spring Boot 3.4.0 (insbesondere Spring-Web 6.2.0) fehl.

Post by Guest »

Nach dem Upgrade auf Spring Boot 3.4.0 (Spring Web 6.2.0) schlugen meine Gateway-Filtertests fehl. Die Tests haben zuvor überprüft, dass die Anforderungsheader korrekt geändert wurden, aber jetzt scheinen die Änderungen nicht in den Testzusicherungen sichtbar zu sein.
Hier ist ein vereinfachtes Beispiel, das früher bestanden hat, jetzt aber fehlschlägt:

Code: Select all

@Component
class TestGatewayFilter implements GatewayFilter {
public TestGatewayFilter() {
}

@Override
public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Builder builder = exchange.getRequest().mutate();
builder.header("test-header", "test");
return chain.filter(exchange.mutate().request(builder.build()).build());

}
}

@ExtendWith(MockitoExtension.class)
class TestGatewayFilterTest {

@InjectMocks
private TestGatewayFilter testGatewayFilter;

@Test
void shouldRunFilter() {
MockServerHttpRequest mockRequest = MockServerHttpRequest
.get("/testfilter")
.build();
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);

Mono result = testGatewayFilter.filter(exchange, e -> Mono.empty());
StepVerifier.create(result)
.verifyComplete();

assertEquals("test", exchange.getRequest().getHeaders().getFirst("test-header"));
}
}
Abhängigkeiten:

Code: Select all


org.springframework.boot
spring-boot-starter-parent
3.4.0



17




org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-starter-gateway


io.projectreactor
reactor-test
3.7.1
test


org.apache.commons
commons-text
1.13.0


org.springframework.boot
spring-boot-starter-test
test






org.springframework.cloud
spring-cloud-gateway-dependencies
4.2.0
pom
import



Der Test besteht mit Spring Boot 3.3.x (einschließlich Spring Web 6.1.x), schlägt jedoch mit 3.4.0 (einschließlich Spring Web 6.2.x) fehl. Ich habe die Versionshinweise zu Spring Framework 6.2 durchgesehen, konnte aber keinen Hinweis auf Änderungen am Verhalten von ServerWebExchange oder MockServerWebExchange finden.
Ich möchte testen, ob mit anderen Diensten in interagiert wird Auch dieser Unit-Test.
Fragen:
  • Ist das eine bekannte bahnbrechende Änderung?
  • Was ist richtig? Möglichkeit, Anforderungsheader und Interaktionen zu überprüfen Dienste jetzt in Gateway-Filtertests?
  • Wenn es sich um unbeabsichtigtes Verhalten handelt, wo soll ich es melden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post