2

我有一个 junit 测试用例,它使用 @RunWith(SpringJUnit4ClassRunner.class) 实例化和配置 spring 上下文

在这个 spring 上下文中,我有实现 Lifecycle 接口的 bean。

如何在调用测试之前“启动”spring 上下文并在之后再次停止它?

4

2 回答 2

3
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext-TEST.xml")
public class MyIntegrationTest {}

然后像往常一样引用bean

于 2013-01-11T14:03:52.860 回答
0

@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注释)。

于 2013-01-11T18:48:15.777 回答