Игнорируемые бины в конфигурации SpringBootTest
У меня есть следующая структура;
Основной класс конфигурации;
@TestConfiguration
@Import({MainApplication.class, ConfigA.class, ConfigB.class})
public class MainTestConfiguration {
}
И два отдельных класса конфигурации;
@TestConfiguration
public class ConfigA {
@Bean
public EtcDao etcDao() {
// return custom etcDao
}
}
@TestConfiguration
public class ConfigB {
@Bean
public SomeBean someBean() {
// return custom someBean
}
}
И тест выглядит следующим образом;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainTestConfiguration.class)
public class MotherTest {
@Test
public void test() {
// test
}
}
С этой структурой мои тестовые определения бобов EtcDao
а также SomeBean
игнорируются, и основные определения контекста этих бинов используются (из MainApplication.class
). Но если я включу эти отдельные конфигурации в @SpringBootTest
лайк @SpringBootTest(classes = {ConfigA.class, ConfigB.class})
, тогда это работает правильно. не @Include
разрешить инициализацию bean-компонентов в этих отдельных классах конфигурации? Или виновником является мое включение MainApplication.class
вместе с ними, но мне нужна другая конфигурация от него, поэтому мне пришлось реализовать таким образом.