gpt4 book ai didi

java - Hamcrest 匹配器检查响应 json 数组中的任何元素是否具有与 Rest Assured 中的特定值相同的属性值

转载 作者:行者123 更新时间:2023-12-01 18:30:46 24 4
gpt4 key购买 nike

我正在使用 Rest-Assured 进行 REST API 测试自动化。对于一个 API,我得到一个如下所示的数组作为响应。从该数据数组中,我需要检查任何数组项是否有任何属性“requestRefNo”,其值:“Sss/12345637/58”

 {
"data": [
{
"requestRefNo": "Sss/12345637/88",
"requestRefType": "AST",
"requestedByCode": "OWR",
"requestedByDesc": "Asset Owner",
"requestedDate": "12/06/2016",
"requestTypeRefNo": "Sss/12345637/SWT/73"
},
{
"requestRefNo": "Sss/12345637/58",
"requestRefType": "AST",
"requestedByCode": "OWR",
"requestedByDesc": "Asset Owner",
"requestedDate": "10/06/2016",
"requestTypeRefNo": "Sss/12345637/SWT/43"
},
....
],
"links": {
"linkDetails": [

],
"empty": true
},
"errors": {
"empty": true,
"errorDetails": [

]
}
}

我尝试过这样的:

.assertThat().statusCode(200).body("data.requestRefNo", IsArrayContaining.hasItemInArray("Sss/12345637/58"))))

但它给出了以下错误:

java.lang.AssertionError: 1 expectation failed.
JSON path data.requestRefNo doesn't match.
Expected: an array containing "Sss/12345637/58"
Actual: [Sss/12345637/58, Sss/12345637/88]

谁能给我任何想法吗?

谢谢,苏罗迪普

最佳答案

得到一个非常简单的答案,之前错过了:

...
.body("data.requestRefNo", Matchers.hasItem("Sss/12345637/58"))
.extract().response();

"data.requestRefNo"将返回响应数组中所有 requestRefNo 的数组,例如 [Sss/12345637/58, Sss/12345637/88],Matchers.hasItem 将检查值“Sss/12345637/58”是否存在在那里面。

谢谢。

关于java - Hamcrest 匹配器检查响应 json 数组中的任何元素是否具有与 Rest Assured 中的特定值相同的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60170141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com