簡體   English   中英

如何使用帶有JSON響應的Rest Assured聲明基於正文項?

[英]How to assert based on body item with Rest Assured with JSON response?

如何使用放心的.body()方法在“描述”數組中聲明我的屬性。

例:

 .body ("[0] .userType", equalTo (1)); // error 

這是我要使用的當前JSON數據:

{
"validSession": true,
"value": "xxx",
"description": [
    {
        "userType": 1,
        "userTypeDescription": "xxx",
        "uname": "xx",
        "distributorId": 1
    }
]}

我把它弄干凈了:

.body("validSession",is(true))
.body("description[0].userType", equalTo(1))
.body("description[0].userTypeDescription", containsString("xxx"))
.body("description[0].uname", containsString("xx"))
.body("description[0].distributorId", equalTo(1));

我進行了測試,並且有效。 但是我不明白為什么它只能通過將索引為零的數組的所有元素置為有效。

你可以解釋嗎?

嘗試使用以下代碼片段:

.body("description[0]", hasItem(1))

讓我知道是否有幫助。

你可以解釋嗎?

您需要在測試中引用description[0]的原因是,JSON數據中的元素“ description”是一個數組。 您正在使用數組語法聲明要讀取名為“ description”的數組的第一個元素的意圖。

您還可以使用Hamcrest:

Response data = httpClientRequest.getApiCall(url);
data.then().assertThat().body("description.userTypeDescription[0]", Is.is("xxx"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM