могут ли @SpringBootTest и @WebMvcTest сосуществовать - PullRequest
0 голосов
/ 22 января 2019

У меня есть тест с пометкой; @ SpringBootTest

и еще один тестовый тест с @ WebMvcTest

и они не работают вместе, когда я перемещаю одну из них, они обе работают как положено.

Может кто-нибудь подсказать, какова связь / проблема с двумя из них, расположенными в одном дереве исходных текстов

1 Ответ

0 голосов
/ 22 января 2019

@SpringBootTest загружает весь контекст Spring.

@WebMvcTest позволяет вам тестировать, например, один класс Controller.

Если у вас есть полный контекст, зачем вам нужен @WebMvcTest?

И коренная причина:

java.lang.IllegalStateException: ошибка конфигурации: найдено несколько объявления @BootstrapWith для тестового класса

Поскольку обе аннотации @SpringBootTest и @WebMvcTest имеют внутри аннотацию @BootstrapWith, и это не разрешено.

редактировать

Отвечая на ваш комментарий: В такой ситуации я хотел бы разделить его на два разных класса. Предположим, вы хотите проверить класс UserController. Затем вы создаете класс UserControllerTest для модульных тестов с аннотацией @WebMvcTest(UserController.class) и вторым классом с именем UserControllerIT, аннотированным @SpringBootTest и набором интеграционных тестов.

...