我有一个抽象测试类的以下代码(我知道XmlBeanFactory
和ClassPathResource
已经过时,但这不太可能是问题的原因)。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public abstract class AbstractIntegrationTest {
/** Spring context. */
protected static final BeanFactory context = new XmlBeanFactory(new ClassPathResource(
"com/.../AbstractIntegrationTest-context.xml"));
...
}
它会加载默认的测试配置XML文件
AbstractIntegrationTest-context.xml
(然后我使用自动装配)。我还需要在用@BeforeClass
和@AfterClass
注释的静态方法中使用Spring,因此我有一个单独的上下文变量指向相同的位置。但问题是这是一个单独的上下文,它将具有不同的bean实例。那么,如何合并这些上下文或如何从我的静态上下文调用由@ContextConfiguration
定义的Spring bean初始化呢?我想到了通过摆脱那些静态成员来解决这个问题,但我很好奇是否可以通过对代码进行相对较小的更改来解决它。
setApplicationContext()
的解决方案中,应用程序上下文通过@ContextConfiguration
加载并将上下文分配给静态变量。原则上应该可以工作。 - Tomasz Nurkiewicz