繁体   English   中英

是否可以以编程方式启动外部 spring-boot 应用程序

[英]Is it possible to start up an external spring-boot application programmatically

我使用 spring-boot 2.0.3 创建了一个休息应用程序。 从另一个 maven 模块(在不同的多模块 pom 中),我有一个集成测试,用于测试发送到正在运行的 rest 应用程序的数据是否得到处理。

是否可以以编程方式运行这个 spring-boot 应用程序? 我不能使用简单的 @SpringBootTest-annotation,因为 spring-boot 应用程序不在同一个 maven 多模块中。

我建议使用 mockito 用一些数据模拟对您的休息端点的请求,并测试您的其他应用程序是否尝试将正确的数据发送到端点。

这样,两个应用程序都是独立测试的,彼此之间没有依赖关系。 这提供了能够在必要时用另一个应用程序替换这些应用程序之一的好处。 它还提供了良好的分离。 这很重要,因为当您(或其他人)想要使用您的 REST 应用程序时,他们不会使用您的其他应用程序,因此使用测试中编写的静态数据测试 REST 应用程序并且不依赖于输出另一个应用程序。 因为 REST 应用程序是独立的。

但是,当您确实想以这种方式对其进行测试时,您可以尝试将其他应用程序包含在类路径中。

问题是“松耦合”。 技术上可行,但不推荐。 构建本身有许多测试,使用 Mockito 模拟是必不可少的。

应该创建一个集成测试模块 ala Caribbean.io,它将涵盖运行模块的功能。

这是已接受答案的要点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM