我有很多春天的测试。我们的应用程序上下文包含几个xml文件像这样:
[{'b': 'c2', 'd': 'e4', 'x': 'a1'},
{'b': 'c2', 'd': 'e3', 'x': 'a1'},
{'b': 'c1', 'd': 'e1', 'x': 'a1'},
{'b': 'c1', 'd': 'e2', 'x': 'a1'},
{'b': 'c3', 'd': 'e5', 'x': 'a2'},
{'b': 'c3', 'd': 'e1', 'x': 'a2'},
{'b': 'c4', 'd': 'e6', 'x': 'a2'}]
Spring默认缓存上下文,这可以防止每次为每次测试重新创建上下文,从而提高性能。要享受此功能,我必须在每个测试中使用完全相同的"位置"。
如何在测试之间共享这种注释?我知道我可以创建一个父类,所有测试都可以扩展。但有时我确实需要扩展其他类。我试图把String []放到一个常量中,但是注释不能有一个常量作为值,因为它是被禁止的。
所以问题是如何在没有父类的测试之间共享一组spring上下文xml位置?
答案 0 :(得分:0)
我找到了。我必须创建一个这样的类:
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource(value = {
"classpath:aaaaa.xml",
"classpath:bbbbb.xml"})
public class IntegrationTestConfiguration {
}
然后在测试课程中我不得不说:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = IntegrationTestConfiguration.class )
public class MyTest
多数民众赞成。