如何对 Spring Boot 应用程序进行集成测试?

How to do an integration test for a Spring Boot application?

TLDR: 你应该测试编译后的 JAR 还是写一个 @Test 方法到 运行 主 class 就足够了?

我有一个 Spring 与其他几个服务集成的启动服务。

目前,为了测试服务之间的集成,我正在 运行 在模拟其他服务的同时将编译后的 JAR 置于某种暂存环境中。

运行编译后的 JAR 优于 运行运行 主应用程序和模拟(例如使用 Mockito)其他服务的单元测试?

或者,我是否需要这两种功能?

您可能两者都想要。这是微服务测试策略的重要指南 https://martinfowler.com/articles/microservice-testing/

单元测试仅测试应用程序的特定部分,模拟内部应用程序的其他部分。这些可以 运行 作为您 CI/CD 管道的一部分。

您还需要 运行 使用外部系统模拟在您的代码库中进行集成测试。这些可以 运行 作为您的管道的一部分,并使用您提到的测试注释。只要与外部系统的合同正确,这些将确保您的应用程序正常运行。

然后您可能想要使用调用您的 API 的外部工具针对 运行ning 应用程序进行一些 运行 时间冒烟测试。