我已经设置了Spring Integration流配置,以便将消息发送到外部Web服务,然后解组响应,然后根据响应对象类型进行一些后期处理。
我有以下outbound-gateway
配置:
<int:channel id="sendRequestChannel"/>
<ws:outbound-gateway request-channel="sendRequestChannel" uri="${send.ws.uri}" reply-channel="responseTransformer" >
<ws:request-handler-advice-chain>
<ref bean="retryAdviceUserUpdateWs" />
</ws:request-handler-advice-chain>
</ws:outbound-gateway>
现在,我想测试流程并检查是否根据响应对象触发了正确的后期处理。
我的集成测试中是否存在根据我发送的消息模拟端点响应?
答案 0 :(得分:0)
实际上你应该了解你的流程的哪一部分最好模拟并返回所需的响应。
您可以ChannelInterceptor
将sendRequestChannel
注入preSend
,其中null
会返回send
,以阻止进一步处理,并responseTransformer
发送所需的消息回复Advice
。
另一个强大的选择是向<ws:request-handler-advice-chain>
再添加一个AbstractRequestHandlerAdvice
,并将其作为mock
的扩展名实施。
我通过Java代码看到的最后一个选项是WebServiceTemplate.sendAndReceive
<ws:outbound-gateway>
,并将其注入mock
。
从另一方面我知道SoapUI有一个y
目标服务的工具,所以,你甚至不需要用Java做任何事情,除非测试。
因此,由您决定选择正确的方法来测试您的流量。