Java 如何从junit测试调用SpringBoot应用程序的主方法并防止其停止
我有一个非常简单的SpringBoot应用程序,它在localhost:8085上公开了一个rest端点Java 如何从junit测试调用SpringBoot应用程序的主方法并防止其停止,java,spring-boot,junit,Java,Spring Boot,Junit,我有一个非常简单的SpringBoot应用程序,它在localhost:8085上公开了一个rest端点 @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); System.out.println("The gOaT"); } } 我想在jun
@SpringBootApplication
public class App
{
public static void main(String[] args)
{
SpringApplication.run(App.class, args);
System.out.println("The gOaT");
}
}
我想在junit测试中启动我的应用程序。这成功地做到了:
public class SomeTest extends TestCase {
@Test
public void testOne() {
String[] args = new String[0];
App.main(args);
assertTrue(true);
}
}
问题是,一旦单元测试初始化应用程序,它也会立即将其关闭(我认为这是因为单元测试本身终止):
如何运行此测试、启动应用程序,然后防止应用程序关闭?用以下注释您的测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
它会将应用程序加载到上下文中,并保持应用程序运行 为测试类添加以下注释:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
它会将应用程序加载到上下文中,并保持应用程序运行 为了测试restapi,您需要mockmvc或类似的框架。 用
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
我有一个可能有助于您启动的示例项目:
要测试RESTAPI,您需要mockmvc或类似的框架。 用
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
我有一个可能有助于您启动的示例项目:
你为什么要完成这样的事情?你不能用弹簧测试吗?为什么你需要完成这样的事情?你不能用弹簧测试吗?