Игнорируемые бины в конфигурации 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 вместе с ними, но мне нужна другая конфигурация от него, поэтому мне пришлось реализовать таким образом.

0 ответов

Другие вопросы по тегам