В @ContextConfiguration
вы определили свою конфигурацию тестового контекста, которая будет загружена из ExcludeCommandLineRunner
Spring TestContext, поэтому она будет выполнена.
@ContextConfiguration(classes = ExcludeCommandLineRunner.class)
Также аннотация @SpringBootTest
будет искать основную конфигурацию class (один с @SpringBootApplication (потому что он в свою очередь мета-аннотирован с @SpringBootConfiguration)) и используйте его для запуска контекста приложения Spring. В вашем примере вы явно определили, какой класс использовать для контекста приложения bootstrap.
@SpringBootTest(classes = ExcludeCommandLineRunner.class)
Вы должны использовать одну из приведенных выше аннотаций.
Решение: a) Укажите другой класс ( es) в @ContextConfiguration
или b) включить внутренний класс stati c, помеченный @Configuration
в классе MyTest
, который затем будет использоваться для загрузки тестового контекста. В любом случае вам необходимо удалить аннотацию @SpringBootTest
.
@RunWith(SpringRunner.class)
public class MyTest {
@Autowired
MyService myService;
@Test
public void foo() {
assertEquals(3, this.myService.sum(1, 2));
}
@Configuration
public static class TestContextConfiguration {
// define beans (for example MyService) here
}
}