在我的代码中,我不想加载XXApplicationConfig类中定义的所有bean。
XXApplicationConfig是一个@Configuration注释文件,其中定义了许多spring bean。
因此,我想在测试时仅从XXApplicationConfig类加载AppBean,以减少加载测试时间并区分我要测试的内容。我还想使用XXApplicationConfig类加载该类,以确保定义的bean配置也正确。
这是我的Test类(已修改),用于测试AppBean类。
您能否让我知道这是否是正确的方法,并提出如何改善它的建议?目前,这种方法似乎行之有效。但是,不确定这是否是正确的处理方法。
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class ApplicationTest {
@Configuration
@PropertySources(value = {@PropertySource("classpath:test.properties")})
static class MyTestConfiguration {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public XXApplicationConfig xxAppConfig() {
return new XXApplicationConfig();
}
@Bean
public CustomTestService customTestService() {
return new CustomTestService();
}
@Bean
public AppBean appBean() throws Exception {
return XXApplicationConfig().appBean();
}
}
@Autowired
private AppBean appBean;
@Test
public void testAppBean() {
test appBean.doSomething();
}
}
最佳答案
如果只想测试一个对象,则使用该类的构造函数创建该类的一个对象。 Spring bean被设计为POJO。 Spring上下文只是创建和连接对象的便捷方式。没有什么可以阻止您自己创建和连接它们的。