【问题标题】:Does Spring Cloud Contract support serial dependencies between microservices?Spring Cloud Contract 是否支持微服务之间的串行依赖?
【发布时间】:2017-05-29 07:12:23
【问题描述】:

假设我们有 3 个微服务 A、B 和 C。我们要测试微服务 A 的一个功能,它依赖于微服务 B。但是,微服务 B 的响应也依赖于微服务 C。Spring Cloud Contract支持这种情况?因为通过阅读文档,我了解到当为 A-B 之间的交互(并插入 B)创建合同时,B 中自动生成的测试将失败,因为它等待 C 的响应以提供答案。即使我们有另一个交互 B-C 的合约,这意味着我们必须修改 B 中自动生成的测试,以便测试成功。有没有办法在为 A-B 创建合同时指定这也取决于交互 B-C?

【问题讨论】:

    标签: spring-cloud-contract


    【解决方案1】:

    我认为您阅读的文档比实际存在的要多。当您测试消费者时,合约不会被断言,它只是生成与合约匹配的存根响应。因此,在您的场景中,要测试服务 A,您只需要来自服务 B 的存根。您甚至不需要合同,也不需要服务 C 的任何内容。我想知道您是否真的尝试过,但有些东西没有不行吗?

    【讨论】:

    • 戴夫是对的。您需要做的是创建 2 个单独的合同。对于服务 B 和服务 C。这样,您可以创建 2 组存根 - 用于服务 B 和服务 C。然后您可以检查 A 与 B 以及 B 与 C 之间的集成。请记住,原则上合同测试不是关于测试功能。这是关于检查 API 的正确性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2022-01-08
    • 2020-12-09
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多