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"));
}
}
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
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?