SpringCloud 测试问题
2023-12-06 16:54 更新
如果我们想在左上角测试该应用程序以确定它是否可以与其他服务通信,则可以执行以下两项操作之一:
- 部署所有微服务并执行端到端测试。
- 在单元/集成测试中模拟其他微服务。
两者都有优点,也有很多缺点。
部署所有微服务并执行端到端测试
好处:
- 模拟生产。
- 测试服务之间的真实通信。
缺点:
- 要测试一个微服务,我们必须部署6个微服务,几个数据库等。
- 测试运行的环境被锁定为单个测试套件(在此期间,其他任何人都无法运行测试)。
- 他们需要很长时间才能运行。
- 反馈在此过程中非常晚。
- 他们很难调试。
在单元/集成测试中模拟其他微服务
好处:
- 他们提供了非常快速的反馈。
- 他们没有基础架构要求。
缺点:
- 服务的实现者创建的存根可能与现实无关。
- 您可以通过测试并通过失败的生产。
为了解决上述问题,创建了带有Stub Runner的Spring Cloud Contract验证程序。主要思想是为您提供非常快速的反馈,而无需建立整个微服务世界。如果您使用存根,则仅需要应用程序直接使用的应用程序。
Spring Cloud Contract验证程序可确保您使用的存根是由您正在调用的服务创建的。另外,如果可以使用它们,则表示它们已经在生产者方面进行了测试。简而言之,您可以信任这些存根。
以上内容是否对您有帮助:
更多建议: