rest-assured - 无效的 XML 路径键仍在 Rest Assured 中评估

标签 rest-assured

我的示例 Web 服务返回以下 XML。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<errorResponse>
<errorCode>Wrong ID</errorCode>
<errorId>2</errorId>
</errorResponse>

以下测试通过。
response.then().body("errorResponse.errorId", Matchers.is("2"));
response.then().body("errorResponse.errorCode", Matchers.is("Wrong ID"));

response.then().body("errorResponse1.errorCode", Matchers.is("Wrong ID"));
response.then().body("errorResponse2.errorCode", Matchers.is("Wrong ID"));

我知道前两个测试很好,我没有得到的是为什么最后两个通过了?

最佳答案

Rest-assured 使用其 xml-path 库来评估您的 hamcrest 匹配器,该库包含进行实际检查的 XMLAssertion 类。

源码可以在 GitHub 上找到:https://github.com/rest-assured/rest-assured/blob/master/xml-path/src/main/groovy/io/restassured/assertion/XMLAssertion.groovy

在此文件的第 60 行,您可以看到它删除了第一个点之前的搜索键部分,因为它识别出我们正在从根节点进行评估。

因此你的 key :

"errorResponse3.errorCode" 

变成
".errorCode"

所以事实证明,这个初始路径是什么样子并不重要,它假定它是根节点的名称,无论如何都将其丢弃。

关于rest-assured - 无效的 XML 路径键仍在 Rest Assured 中评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250167/

相关文章:

rest - 无法使用损坏的 HTTPS 向页面发出 REST 请求

java - 如何使用 RestAssured post 方法上传多张图片

java - (RestAssured) 将嵌套路径提取为给定类型

java - 在 Cucumber-jvm 中使用多个步骤定义时出现 NullPointerException

java - 如何使用 Rest Assured 和 POST 方法获取 REST API 端点的访问 token ,目前我收到 404 错误?

java - 当 JSON 键以数字开头时,Rest-Assured IllegalArgumentException

放心。期望定义了一个以上属性值的数组元素

groovy - Spock 和 Groovy 让您安心无忧

java - 使用放心 put 方法测试 api 时出现错误请求 400 和反序列化错误

java - 如何使用 selenium webdriver 在 UI 下测试 RESTful Web 服务