Тесты Spring Cloud Gateway завершаются неудачей после обновления до Spring Boot 3.4.0 (в частности, Spring-Web 6.2.0)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Тесты Spring Cloud Gateway завершаются неудачей после обновления до Spring Boot 3.4.0 (в частности, Spring-Web 6.2.0)

Сообщение Anonymous »

После обновления до Spring Boot 3.4.0 (Spring Web 6.2.0) мои тесты фильтра шлюза начали давать сбой. Ранее тесты проверяли, что заголовки запросов были изменены правильно, но теперь эти изменения не видны в тестовых утверждениях.
Вот упрощенный пример, который раньше проходил успешно, но теперь терпит неудачу:

Код: Выделить всё

@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



Тест проходит успешно с Spring Boot 3.3.x (включая Spring Web 6.1.x), но не пройден с версией 3.4.0 (включая Spring Web 6.2.x). Я просмотрел примечания к выпуску Spring Framework 6.2, но не нашел никаких упоминаний об изменениях в поведении ServerWebExchange или MockServerWebExchange.
Я хотел бы проверить, взаимодействуют ли с другими службами в этот модульный тест тоже.
Вопросы:
  • Это известное критическое изменение?
  • Какое правильное способ проверки заголовков запросов и взаимодействующих сервисов в тестах фильтров шлюза?
  • Если это непреднамеренное поведение, куда мне следует сообщить об этом?


Подробнее здесь: https://stackoverflow.com/questions/793 ... ecifically
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»