我有以下结构;
主要配置类;
label.backgroundColor = UIColor.black.withAlphaComponent(0.4)
两个独立的配置类;
@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
}
}
使用此结构,将忽略bean @RunWith(SpringRunner.class)
@SpringBootTest(classes = MainTestConfiguration.class)
public class MotherTest {
@Test
public void test() {
// test
}
}
和EtcDao
的测试定义,并使用这些bean的主要上下文定义(来自SomeBean
)。但是,如果我在MainApplication.class
@SpringBootTest
中添加这些单独的配置,那么它可以正常运行。 @SpringBootTest(classes = {ConfigA.class, ConfigB.class})
是否不允许初始化这些单独配置类中的bean?或者罪魁祸首是我将@Include
与它们一起包含在内,但我需要其他配置,所以我必须以这种方式实现。