在JUnit测试用例中的@ContextConfiguration中指定类加载顺序

时间:2015-06-23 12:45:15

标签: java spring junit spring-test

我正在使用junit 4.11和spring-test-4.1.5来编写集成测试用例。我正在使用@ContextConfiguration批注来加载配置。,

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes ={ApplicationConfig.class,SpringConfiguration.class }, initializers = {CustomProfileResolver.class, AppInitializer.class}, loader = SpringApplicationContextLoader.class)

如您所见,我正在使用两个配置类。 我面临的问题是我想在SpringConfiguration.class 之前加载ApplicationConfig.class。我尝试撤销订单,但没有奏效。这里既没有指定@order。

那么如何订购这些配置类的加载,是否可能?

2 个答案:

答案 0 :(得分:1)

@ContextConfiguration及其支持类(例如MergedContextConfigurationAnnotationConfigContextLoaderAbstractTestContextBootstrapper等)旨在保留@Configuration类的原始排序通过classes的{​​{1}}属性声明。

因此,如果您可以可验证地证明逆转@ContextConfigurationSpringConfiguration类的顺序不会导致首先处理ApplicationConfig,那么您在Spring中发现了一个错误。

如果您发现了错误,请在JIRA中报告。

谢谢,

萨姆

答案 1 :(得分:1)

使用@ContextHierarchy

await