我有我的抽象测试类的代码段(我知道XmlBeanFactory
与ClassPathResource
已弃用,但它不太可能是问题的情况)。Spring测试@ContextConfiguration和静态上下文
@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?
我想通过摆脱这些静态成员的可能的解决方案,但我很好奇,如果我可以做到与代码相对较小的更改。
关于第二选择。在所有测试之前运行一次并不是一个大问题。事情是,如何做课后*逻辑? – Vic
@Vic:查看我的更新 –
第一个解决方案仍然存在问题:“从* where *获取应用程序上下文注入?”第二个必须工作。我会尝试。 – Vic