0

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

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");
4

1 回答 1

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:Envelopeas root 元素。

于 2017-11-30T06:59:31.187 回答