如何对 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 应用程序进行一些 运行 时间冒烟测试。
TLDR: 你应该测试编译后的 JAR 还是写一个 @Test
方法到 运行 主 class 就足够了?
我有一个 Spring 与其他几个服务集成的启动服务。
目前,为了测试服务之间的集成,我正在 运行 在模拟其他服务的同时将编译后的 JAR 置于某种暂存环境中。
运行编译后的 JAR 优于 运行运行 主应用程序和模拟(例如使用 Mockito)其他服务的单元测试?
或者,我是否需要这两种功能?
您可能两者都想要。这是微服务测试策略的重要指南 https://martinfowler.com/articles/microservice-testing/
单元测试仅测试应用程序的特定部分,模拟内部应用程序的其他部分。这些可以 运行 作为您 CI/CD 管道的一部分。
您还需要 运行 使用外部系统模拟在您的代码库中进行集成测试。这些可以 运行 作为您的管道的一部分,并使用您提到的测试注释。只要与外部系统的合同正确,这些将确保您的应用程序正常运行。
然后您可能想要使用调用您的 API 的外部工具针对 运行ning 应用程序进行一些 运行 时间冒烟测试。