【问题标题】:How to assert JSON 2D array using RestAssured?如何使用 RestAssured 断言 JSON 2D 数组?
【发布时间】:2021-06-14 15:42:31
【问题描述】:

使用 RestAssured 并且我正在努力对响应正文中的 2D 字符串数组进行断言。我的响应 JSON 为:

{
    "status": {
        "code": "00",
        "message": "SUCCESS",
        "timestamp": "2021-06-14T11:25:34Z"
    },
    "data": {
        "data": [
            [
                "elementZero",
                "elementOne",
                "elementTwo"
            ]
        ]
    }
}

而我的代码如下

    given()
            .auth().oauth2(token)
            .when()
            .pathParam("orderId", orderId)
            .get("/getScreeningsForOrder/{orderId}")
            .then()
            .statusCode(200)
            .contentType(ContentType.JSON)
            .assertThat()
            .body("data.data[0]", arrayContainingInAnyOrder("elementZero", "elementOne", "elementTwo"))
            .body("status.code", equalTo("00"))
            .body("status.message", equalTo("SUCCESS"))
            .body("status.timestamp", Matchers.startsWith(expectedTimestamp_yyyyMMdd))
            .extract()
            .response();

我收到以下错误:

预期:["elementZero", "elementOne", "elementTwo"] 任意顺序
实际:

如何在 data.data 上断言以确保它包含一个与我的数组匹配的元素?

【问题讨论】:

  • 如何将data.data反序列化为List<List<String>>,然后使用List接口中的方法?

标签: java junit rest-assured hamcrest


【解决方案1】:

试试这些 - "data.data[0][0]""data.data[0].[0]"

【讨论】:

  • 这些都没有使用我上面的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多