【发布时间】:2012-12-26 02:59:10
【问题描述】:
我有一个 junit 测试用例,它用 @RunWith(SpringJUnit4ClassRunner.class)
在这个 spring 上下文中,我有实现 Lifecycle 接口的 bean。
如何在调用测试之前“启动”spring 上下文并在之后再次停止它?
【问题讨论】:
我有一个 junit 测试用例,它用 @RunWith(SpringJUnit4ClassRunner.class)
在这个 spring 上下文中,我有实现 Lifecycle 接口的 bean。
如何在调用测试之前“启动”spring 上下文并在之后再次停止它?
【问题讨论】:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext-TEST.xml")
public class MyIntegrationTest {}
然后像往常一样引用 bean
【讨论】:
@RunWith(SpringJUnit4ClassRunner.class) 在名为 MyTestCase 的类之上就足够了。 Spring test framework 将在 CLASSPATH 上查找 MyTestCase-test.xml 文件。如果您不喜欢这种命名约定,您可以指定自己的:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext.xml")
public class MyTestCase {
@Autowired
private Dependency dep;
}
如何在调用测试之前“启动”spring 上下文并在之后再次停止它?
通常您无需执行任何操作。 Spring 将在第一次测试之前启动应用程序上下文,并在运行测试的 JVM 关闭时自动关闭它。您还可以在每次测试后重新启动上下文(请参阅@DirtiesContext 注释)。
【讨论】: