Spring Integration WS:模拟端点以返回响应

时间:2015-06-02 19:11:22

标签: spring web-services unit-testing spring-ws

我已经设置了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>

现在,我想测试流程并检查是否根据响应对象触发了正确的后期处理。

我的集成测试中是否存在根据我发送的消息模拟端点响应?

1 个答案:

答案 0 :(得分:0)

实际上你应该了解你的流程的哪一部分最好模拟并返回所需的响应。

  1. 您可以ChannelInterceptorsendRequestChannel注入preSend,其中null会返回send,以阻止进一步处理,并responseTransformer发送所需的消息回复Advice

  2. 另一个强大的选择是向<ws:request-handler-advice-chain>再添加一个AbstractRequestHandlerAdvice,并将其作为mock的扩展名实施。

  3. 我通过Java代码看到的最后一个选项是WebServiceTemplate.sendAndReceive <ws:outbound-gateway>,并将其注入mock

  4. 从另一方面我知道SoapUI有一个y目标服务的工具,所以,你甚至不需要用Java做任何事情,除非测试。

  5. 因此,由您决定选择正确的方法来测试您的流量。