TestRestTemplate против WebTestClient против RestAssured: каков наилучший подход для интеграционного тестирования Spring Boot Rest API - PullRequest
0 голосов
/ 20 апреля 2020

Какой из 3 API: TestRestTemplate, WebTestClient, RestAssured является наиболее эффективным для интеграционного тестирования Spring Boot Rest API (безреактивный) в отношении следующего:

  1. Обеспечивает совместимость с Spring загрузка для инкрементных версий.
  2. Простые в использовании и расширенные утверждения для проверки кодов состояния, заголовков, JSON / XML проверки полезной нагрузки, времени ответа и т. д. c.
  3. Имеет возможность проверки конфигурации пружинного контейнера.
  4. Особенности многократного использования указанных c проверок во всех конечных точках.
  5. Является наиболее стабильной и поэтому общепринятой в отрасли практикой.

Несколько первоначальных выводов, которые не позволяют пометить одного из них как явного победителя:

  • TestRestTemplate & WebTestClient - это встроенные API Spring, поэтому они автоматически настраиваются с помощью Spring Boot , В последних версиях RestAssured (начиная с 4.0.0) могут возникать проблемы с весенней загрузкой (java .lang.NoClassDefFoundError: io / restassured / mapper / factory / GsonObjectMapperFactory ) и требуют добавления явных зависимостей.

  • WebTestClient (Fluent API), кажется, имеет приятный и простой в использовании синтаксис по сравнению с TestRestTemplate, но он очень новый, и не хватает примеров, показывающих его использование для нереактивных API Rest и доступность API расширенного утверждения

  • RestTemplate (API, на котором основан TestRestTemplate) не рекомендуется в будущей версии Spring Boot.

Отзывы опытных разработчиков окажи большую помощь.

1 Ответ

0 голосов
/ 07 мая 2020

Я выбрал WebTestClient и доволен этим. Как вы писали, WebTestClient является встроенным Spring Boot, поэтому это было основной причиной, почему я начал с WebTestClient, потому что я не хотел добавлять еще одну зависимость, если у меня есть довольно хорошее решение из коробки. Не имеет значения, реагирует ли ваше приложение или нет, вы можете использовать WebTestClient. Он поддерживает JSONPath. У меня есть опыт работы с TestRestTemplate, но я думаю, что WebTestClient намного лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...