关于使用Spring 3.0.4的@ContextConfiguration注释,我正面临一个小问题。我想通过applicationContext在运行时检索它们(如果可能的话)。
假设我有这门课程:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"foo.xml", "bar.xml"})
public class Foo() extends AbstractTransactionalJUnit4SpringContextTests {
@Before
public void before() {
//retrieve foo.xml and bar.xml here
}
}
在我的情况下这很有用,我在网上看了一下,并没有找到很多关于如何实现这一点的想法,也许SO专家可以帮助我。
由于
答案 0 :(得分:3)
我不知道有一个公共实用工具,但最简单的方法是手动解析注释:
String[] locations =
Foo.class.getAnnotation(ContextConfiguration.class).locations();
答案 1 :(得分:0)
检查实施ApplicationContextAware 界面是否对您有所帮助。这应该可以让您访问应用程序上下文。
答案 2 :(得分:0)
您无法在@ContextConfig注释中动态指定位置。但是,您可以使用TestExecutionListener以及相应的注释。在beforeTestMethod()中,侦听器可以从TestContext获取ApplicationContext并手动加载必要的xml文件。
如果你想为每个测试想要不同的xml文件,你也应该在@After方法中调用TestContext.markApplicationContextDirty()。