Вот упрощенный пример, который раньше проходил успешно, но теперь терпит неудачу:
Код: Выделить всё
@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"));
}
}
Код: Выделить всё
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
Я хотел бы проверить, взаимодействуют ли с другими службами в этот модульный тест тоже.
Вопросы:
- Это известное критическое изменение?
- Какое правильное способ проверки заголовков запросов и взаимодействующих сервисов в тестах фильтров шлюза?
- Если это непреднамеренное поведение, куда мне следует сообщить об этом?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ecifically