0

对于使用Citrus Framework进行的组件测试,我模拟了一个通过SOAP调用的后端系统。

<citrus-ws:server id="backendSimulationServer"
                port="8080"
                auto-start="true"
                interceptors="serverInterceptors"
                timeout="5000"/>

我从组件获取 SOAP 请求并发回响应。

    runner.receive(action -> action.endpoint("backendSimulationServer")
            .name("search-request")
            .payload(new ClassPathResource("testfiles/search-request-expectation.xml"))
    );

    runner.send(action -> action.endpoint("backendSimulationServer")
            .name("search-response")
            .payload(new ClassPathResource("testfiles/search-response.xml"))
    );

但现在我必须使用MTOM 附件响应来回答请求。.attachment我找到了在 a上使用的 citrus 示例soap().client(),但.attachment不适用于我的服务器模拟。

这对 Java DSL 是否可行,或者我是否在 XML DSL 中重新编写测试用例来实现这一点?

4

1 回答 1

0

Citrus 中的服务器组件也可以使用 SOAP 附件和启用 MTOM 的方法。这应该为您解决问题:

soap().server(soapMtomServer)
      .send()
      .mtomEnabled(true)
      .attachment("IMAGE", "application/octet-stream", new ClassPathResource("com/consol/citrus/hugeImageData.png"))
      .payload("<image:addImage xmlns:image=\"http://www.citrusframework.org/imageService/\">" +
                   "<image>cid:IMAGE</image>" +
               "</image:addImage>");
于 2018-01-16T13:09:02.777 回答