В чем разница между MockMvc и WebTestClient?

Когда я пытался протестировать Spring 4.x, я использовал веб-клиент MockMvc, но я читаю и пробую новые функции Spring 5.x.

Я думаю, WebTestClient и MockMvc одинаковы или очень похожи.

В чем разница между MockMvc и WebTestClient?

Я жду Вашего ответа. Спасибо


person devsh    schedule 16.03.2018    source источник
comment
Из документации WebTestClient используется для тестирования приложения WebFlux, а MockMVC используется для обычного веб-приложения MVC.   -  person cdxf    schedule 03.04.2018


Ответы (1)


Сходства

  • Оба предоставляют свободный синтаксис для тестирования веб-сервисов.
  • Оба могут или работают в симулированной среде, которая обходит использование HTTP.

Основные отличия

  • WebTestClient can also be used to test real web services using HTTP.
    • Specify @SpringBootTest instead of @WebFluxTest.
  • WebTestClient only works if you are using Netty for your local server.
    • This feels like an artificial limitation for the test environment.
    • Вероятно, это связано с неблокирующим характером базового WebClient.
  • WebTestClient может тестировать потоковые ответы

Ресурсы

person Brent Bradburn    schedule 21.04.2018
comment
Кажется, что есть возможность использовать и spring-boot-starter-web, и spring-boot-starter-webflux в одном приложении, но попытка сделать это может принести больше проблем, чем пользы. По сути, это два отдельных и взаимоисключающих стека. - person Brent Bradburn; 22.04.2018
comment
Насколько мне известно, использование mvc и webflux в одном приложении не поддерживается. - person Jan Mares; 14.05.2019
comment
а также я знаю, что вы также можете использовать webtestclient с tomcat - person Mithat Konuk; 23.08.2019