Как написать правильный тестовый пример для контроллера, сервиса и Dao в spirng загрузке с использованием junit 5? - PullRequest
1 голос
/ 02 марта 2020

Как написать правильный контрольный пример для контроллера , службы и Дао в пружинной загрузке с использованием джунит 5 с четким объяснением

1 Ответ

0 голосов
/ 02 марта 2020

Spring Boot имеет концепцию тестовых срезов. Этот тип тестовой конфигурации настроит только часть вашего приложения и, следовательно, сделает тесты:

  • с меньшей вероятностью сломается при несвязанных изменениях,
  • быстрее по сравнению с настройкой всего приложения сервисы (с использованием @SpringBootTest аннотации).

Например, срез @JsonTest настроит ObjectMapper (и некоторые тестовые утилиты для JSON) так же, как это будет происходить на производстве.

В любом случае, для указанных вами типов:

  • DAO - используйте @DataJpaTest slice - он настроит Hibernate с базой данных в памяти и загрузить все ваши сущности и репозитории.
  • Контроллеры - используйте @WebMvcTest(YourController.class) slice - он загрузит только конфигурацию для Spring MVC, советы и ваш контроллер. Вы будете нести ответственность за работу с зависимостями этого контроллера .
  • Службы - в значительной степени зависит от того, что делает ваша служба. Я предпочитаю использовать слайсы также для сервисов, зависящих от bean-компонентов, сконфигурированных Spring, но ваш тест также может быть очень простым стандартным [j] модульным тестом со всеми вычеркнутыми зависимостями. - В зависимости от компромисса, который вы хотите сделать.

Это не изменится с пятой версией junit. Разница лишь в том, что вам больше не нужно комментировать свои тесты с помощью @RunWith(SpringRunner.class).

...