3

我有以下结构;

主配置类;

@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
    }
}

使用这种结构,我对 bean 的测试定义EtcDaoSomeBean被忽略,并且使用这些 bean 的主要上下文定义(来自MainApplication.class)。@SpringBootTest但是,如果我在like中包含这些单独的配置@SpringBootTest(classes = {ConfigA.class, ConfigB.class}),那么它可以正常工作。不允许@Include初始化这些单独的配置类中的 bean?或者罪魁祸首是我MainApplication.class和他们一起包含,但我需要其他配置,所以我必须以这种方式实现。

4

0 回答 0