我有一个使用Spring Boot编写的应用程序,并且正在尝试为其编写一些集成测试。我想运行我的spring boot应用程序并等待它终止,以便我可以断言某些状态。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MyApp.class)
@IntegrationTest("initParams")
public class Test {
@Test
public void test() {
// need to wait until termination
}
有什么方法可以等待Spring应用程序终止而无需修改应用程序代码?
最佳答案
如果您需要测试终止应用程序的测试,最好将应用程序作为测试的一部分来运行,而不是让测试上下文为您启动它。我不确定您为什么需要它,并且我不会在所有用例中都推荐它,但这可以起作用:
public class Test {
@Test
public void test() {
String[] args = new String[]{"initParams"}; // To adapt
ConfigurableApplicationContext ctx = SpringApplication.run(MyApp.class, args);
// whatever
ctx.close();
// whatever after the app has terminated.
}
}