0

我收到以下针对我的 API 的错误请求的响应。我将 RestAssured 用于我的休息响应断言。

{
    "message": "An entity of type topic was passed in an invalid format",
    "meta": {
        "display": {
            "topic": [
                {
                    "name": [
                        "must not be blank"
                    ]
                },
                {
                    "contentType": [
                        "must not be blank"
                    ]
                },
                {
                    "content": [
                        "must not be blank"
                    ]
                },
                {
                    "version": [
                        "must not be blank"
                    ]
                }
            ]
        }
    }
}

我需要验证响应的所有属性的值。我正在努力验证这条路径:meta.display.topic.contentType. 我无法为它想出 GPath。

这是我正在做的断言:

given().body("{}").when()
            .post(BASE_URL)
            .prettyPeek()
            .then()
            .statusCode(400)
            .contentType(ContentType.JSON)
            .body("message", is("An entity of type topic was passed in an invalid format"),
                    "meta.display.topic.contentType", is("must not be blank"));

由于路径不正确,断言总是失败。

4

1 回答 1

1

为避免主题对象的硬编码数组位置,以下将起作用:

meta.display.topic.find { it.contentType != null }.contentType[0]
于 2019-08-26T16:36:12.793 回答