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

问题描述 投票:0回答:1

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

 {
    "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]

谁能给我任何想法吗?

谢谢,Surodip

我正在使用Rest-Assured进行REST API测试自动化。对于一个API,我得到一个类似下面的数组作为响应。从该数据数组中,我需要检查任何数组项是否具有任何属性“ ...

java rest rest-assured hamcrest rest-assured-jsonpath
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.