Soap Webservice使用柑橘框架进行响应验证

时间:2017-11-28 20:04:12

标签: citrus-framework

我正在尝试验证来自服务器的有效负载响应,

soap()
  .server(todoServer)
  .send()
  .payload(new ClassPathResource("templates/getTodoListResponse.xml"));

是否有办法使用SoapActionBuilder

进行如下所示的字段级验证
http()
    .client(todoClient)
    .receive()
    .response(HttpStatus.OK)
    .validate("/t:todo/t:id", "${todoId}")
    .validate("/t:todo/t:title", "${todoName}")
    .validate("/t:todo/t:description", "${todoDescription}")
    .validate("/t:todo/t:done", "false");

1 个答案:

答案 0 :(得分:0)

SoapActionBuilder也可以使用XPath元素验证。

soap()
    .client(todoClient)
    .receive()
    .validate("/t:todo/t:id", "${todoId}")
    .validate("/t:todo/t:title", "${todoName}")
    .validate("/t:todo/t:description", "${todoDescription}")
    .validate("/t:todo/t:done", "false");

请注意,SOAP信封会在Citrus客户端中自动处理。因此,您的XPath表达式能够将有效负载根元素用作表达式的根基路径。您还可以告诉Citrus 不会自动处理SOAP信封。然后你的XPath表达式需要使用SOAP-ENV:Envelope作为根元素。