模拟Spring集成出站Web服务调用

时间:2016-09-21 03:10:47

标签: java spring web-services mocking spring-integration

我有一个带有出站soap web服务调用的spring集成项目。

我有集成测试用例,用于测试项目的输入和输出,其中输入从活动mq队列读取,输出发送到数据库列。

写入数据库的值由SOAP Web服务返回。

以下是网络服务电话

 <int:chain id="soapcall" input-channel="soapChannel"> 
  <int:service-activator ref="convertData" />  
  <int-ws:outbound-gateway  uri="${url}" 

  </int-ws:outbound-gateway>
 </int:chain> 

如何避免调用实际的实时Web服务,而是模拟Web服务调用并返回静态响应?

2 个答案:

答案 0 :(得分:0)

提供链和网关id属性:

<int:chain id="soapcall" input-channel="soapChannel"> 
    <int:service-activator ref="convertData" />  
    <int-ws:outbound-gateway id="wsgw" uri="${url}" 

    </int-ws:outbound-gateway>
</int:chain> 

然后您可以使用@Autowire AbstractWebServiceOutboundGateway @Qualifier("soapcall$child.wsgw.handler")进行setMessageSender(myMockWebServiceMessageSender)测试。

然后,在您的测试中,{{1}}。

答案 1 :(得分:0)

感谢Gary的answer和此示例here

使用Spring Boot和Mockito,我能够使用静态响应模拟soap出站网关:

duplicated(t(apply(x, 1, sort)))