我有一个 junit 测试用例,它使用 @RunWith(SpringJUnit4ClassRunner.class) 实例化和配置 spring 上下文
在这个 spring 上下文中,我有实现 Lifecycle 接口的 bean。
如何在调用测试之前“启动”spring 上下文并在之后再次停止它?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext-TEST.xml")
public class MyIntegrationTest {}
然后像往常一样引用bean
@RunWith(SpringJUnit4ClassRunner.class)
over 类命名MyTestCase
就足够了。Spring 测试框架MyTestCase-test.xml
将在 CLASSPATH 上查找文件。如果你不喜欢这个命名约定,你可以指定你自己的:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext.xml")
public class MyTestCase {
@Autowired
private Dependency dep;
}
如何在调用测试之前“启动”spring 上下文并在之后再次停止它?
通常你不需要做任何事情。Spring 将在第一次测试之前启动应用程序上下文,并在运行测试的 JVM 关闭时自动关闭它。您也可以在每次测试后重新启动上下文(请参阅@DirtiesContext
注释)。