0

当我在测试中发布一个名为“John”的请求时,我得到了几个响应结果:

<links>
<a href="http://test.com/1" id="7875a7a1" title="doctor">John Smith</a>
<a href="http://test.com/2" id="a3e51e21">John Doe</a>
....
</links>

我的目标是找到合适的 John,知道他的 id 并找出属性“title”是否存在。我将如何使用简单的 given-when-then 语法来实现这一点?假设我不知道所需项目在哪个节点中。

从理论上讲,我可以获得所有节点的列表并在 for 循环中一个一个地检查它们,但这听起来很难看......

4

1 回答 1

1

您可以这样做来验证标题是否为医生:

String id = "7875a7a1";
given().
       ...          
when().
       post("/x").
then().
       body("links.a.find { it.@id == '%s'}.@title", withArgs(id), equalTo("doctor"));

像这样检查title属性是否存在:

String id = "7875a7a1";
given().
       ...          
when().
       post("/x").
then().
       body("links.a.find { it.@id == '%s'}.attributes().any { it.key == 'title' }", withArgs(id), is(true));
于 2014-02-10T07:56:32.063 回答