我对 Spring 进行了很多测试。我们的应用程序上下文包含几个 xml 文件。像这样的事情:
@ContextConfiguration( locations = {
"classpath:aaaaa.xml",
"classpath:bbbbb.xml"})
Spring 默认情况下会缓存上下文,这可以防止每次测试时都重新创建上下文,从而提高性能。为了享受这个功能,我必须在每次测试中使用完全相同的“位置”。
如何在测试之间共享这种注释?我知道我可以创建一个父类,所有测试都可以扩展它。然而有时我确实需要扩展其他类(class)。我尝试将 String[] 放入常量中,但注释不能将常量作为值,因为这是禁止的。
所以问题是如何在没有父类的测试之间共享一组 spring 上下文 xml 位置?
最佳答案
我已经发现了。我必须创建一个这样的类:
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
就是这样。
关于java - 如何在 Spring 测试中重用 ContextConfiguration 注释的位置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612233/