Исключение Spring Junit — java.lang.Исключение IllegalStateException: найдено несколько аннотированных классов @SpringBootConfiguration

#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. Но он пытается загрузить полный контекст. Я просто хотел протестировать один контроллер, игнорируя все остальные классы.