#spring-boot #junit
#spring-boot #junit
Вопрос:
У меня есть проект SpringBoot, и в нем есть два класса, аннотированных с помощью @SpringBootApplication . Я написал тест junit следующим образом
@RunWith(SpringRunner.class)
@WebMvcTest(value = TestController.class)
public class Test1 {
@Test
public void test1(){
}
}
Когда я запускаю этот тест, я получаю исключение
java.lang.Исключение IllegalStateException: найдено несколько аннотированных классов @SpringBootConfiguration.
Я хочу, чтобы тест загружал только контроллер, а не полный контекст.
Любая помощь по этому поводу?
Комментарии:
1.
@WebMvcTest
заставляет Spring искать@SpringBootConfiguration
, в том числе@SpringBootApplication
, аннотированные классы. Возможно, в вашей структуре пакета их два или более.
Ответ №1:
Попробуйте добавить аннотацию @ContextConfiguration в свой тестовый класс.
@RunWith(SpringRunner.class)
@ContextConfiguration(classes=Application.class)
@WebMvcTest(value = TestController.class)
public class Test1 {
@Test
public void test1(){
}
}
Комментарии:
1. Но он пытается загрузить полный контекст. Я просто хотел протестировать один контроллер, игнорируя все остальные классы.