2017-05-29 89 views
0

假设我们有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中的任何东西。我想知道你是否真的尝试过它,工作?

+0

戴夫是对的。你需要做的是创建两个单独的合同。对于服务B和服务C.这样,您可以创建2组存根 - 对于服务B和对于服务C.然后,您可以检查A和B之间的集成,B和C之间的集成。请记住,合同测试原则上不是测试功能。这是关于检查API的正确性。 –