Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们是否需要在Spring云合同中保留其他微服务_Java_Spring_Spring Cloud_Spring Cloud Contract - Fatal编程技术网

Java 我们是否需要在Spring云合同中保留其他微服务

Java 我们是否需要在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

@马辛

我正在为微服务实施SpringCloud合同做一个试点,该合同有大约50多个相互对话的服务。我有几个问题没有在你的文件中找到确切的答案

我正在构建的服务有一个控制器,该控制器处理并将我的输入有效负载转换为json格式的所需输出。此json用于构建所需的结构,该结构应与groovy(我们的合同)中的响应相匹配。但是,控制器正在使用如下所示的URL向另一个服务发送json

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(契约)编写的。