Java 我们是否需要在Spring云合同中保留其他微服务
@马辛 我正在为微服务实施SpringCloud合同做一个试点,该合同有大约50多个相互对话的服务。我有几个问题没有在你的文件中找到确切的答案 我正在构建的服务有一个控制器,该控制器处理并将我的输入有效负载转换为json格式的所需输出。此json用于构建所需的结构,该结构应与groovy(我们的合同)中的响应相匹配。但是,控制器正在使用如下所示的URL向另一个服务发送jsonJava 我们是否需要在Spring云合同中保留其他微服务,java,spring,spring-cloud,spring-cloud-contract,Java,Spring,Spring Cloud,Spring Cloud Contract,@马辛 我正在为微服务实施SpringCloud合同做一个试点,该合同有大约50多个相互对话的服务。我有几个问题没有在你的文件中找到确切的答案 我正在构建的服务有一个控制器,该控制器处理并将我的输入有效负载转换为json格式的所需输出。此json用于构建所需的结构,该结构应与groovy(我们的合同)中的响应相匹配。但是,控制器正在使用如下所示的URL向另一个服务发送json request\u url=http://localhost:8090/services/rest/transact/v
request\u url=http://localhost:8090/services/rest/transact/v2/pay/validate/0000118228/new 响应\u body=null
基本上,它希望通过使用这个json从另一个服务返回响应,现在Response\u body=null
我的问题是我需要创建存根还是模拟服务?将此响应用作输入,以从响应生成预期输出。基本上,微服务需要一个服务响应
另一个问题是,在进行契约测试时,我们需要加载内存数据还是只需要测试控制器本身?我不太明白您的描述。。。“我正在构建的服务有一个控制器,它转换从groovy发送的输入负载,并以json格式提供所需的输出”。从哪个groovy发送的?Groovy应用程序?你能更深入地解释一下吗 但我想我可以试着回答这个问题 我的问题是我需要创建存根还是模拟服务?将此响应用作输入,以从响应生成预期输出。它正在等待ServiceResponse 如果我理解正确-
服务
你是说一个类而不是一个应用程序?如果是这样的话,那么,是的,在控制器中我将注入一个存根服务
另一个问题是,在进行契约测试时,我们需要在内存中加载数据,还是只需要测试控制器本身
这与前面的答案有关。控制器不会将工作委托给服务的任何实际实现,因此不会访问数据库。如果您查看samples(),您将看到基类中注入了mock,并且没有发生真正的集成
编辑:
“我正在构建的服务有一个控制器,它转换从groovy发送的输入有效负载,并以json格式提供所需的输出”,这实际上是对通过SpringCloudContract生成的测试完成的操作的描述。下一句是
但是,控制器正在使用如下所示的URL向另一个服务发送json
在合同测试中,我不关心您的控制器进一步做什么。如果它在控制器中,您将请求发送到其他应用程序,那么您应该将其包装在服务类中。然后在合同测试中模拟这样的服务。在合同测试中,我们关心的是我们是否能够沟通。不知道整个端到端功能是否正常工作。谢谢您的回复。我已经纠正了我的问题。我的是java应用程序,但请求和响应是根据SpringCloud契约用groovy(契约)编写的。