rus*_*tyx 28 java junit spring
我在我的JUnit 4测试中使用SpringJUnit4ClassRunner,如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/test-context.xml"})
public class MyTest {
@Autowired
private ConfigurableApplicationContext context;
@Test
public void test1() {
. . .
}
@Test
public void test2() {
. . .
}
. . .
}
Run Code Online (Sandbox Code Playgroud)
但是,在此测试用例结束时,应用程序上下文未关闭.我希望在测试用例结束时关闭应用程序上下文(不是在测试用例中的每个单独测试结束时).
到目前为止,我可以想出这个解决方法:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/test-context.xml"})
public class MyTest {
@Autowired
private ConfigurableApplicationContext context;
private static ConfigurableApplicationContext lastContext;
@After
public void onTearDown() {
lastContext = context;
}
@AfterClass
public static void onClassTearDown() {
lastContext.close();
}
@Test
public void test1() {
. . .
}
@Test
public void test2() {
. . .
}
. . .
}
Run Code Online (Sandbox Code Playgroud)
有更好的解决方案吗?
gka*_*mal 70
您可以@DirtiesContext(classMode=ClassMode.AFTER_CLASS)在类级别添加,并且一旦方法中的所有测试完成,上下文将关闭.您将获得与当前代码相同的功能.
| 归档时间: |
|
| 查看次数: |
14073 次 |
| 最近记录: |