@SpringBootTest
загружает весь контекст Spring.
@WebMvcTest
позволяет вам тестировать, например, один класс Controller
.
Если у вас есть полный контекст, зачем вам нужен @WebMvcTest
?
И коренная причина:
java.lang.IllegalStateException: ошибка конфигурации: найдено несколько
объявления @BootstrapWith для тестового класса
Поскольку обе аннотации @SpringBootTest
и @WebMvcTest
имеют внутри аннотацию @BootstrapWith
, и это не разрешено.
редактировать
Отвечая на ваш комментарий:
В такой ситуации я хотел бы разделить его на два разных класса.
Предположим, вы хотите проверить класс UserController
. Затем вы создаете класс UserControllerTest
для модульных тестов с аннотацией @WebMvcTest(UserController.class)
и вторым классом с именем UserControllerIT
, аннотированным @SpringBootTest
и набором интеграционных тестов.