RestAssured Json 使用 GPath 进行响应验证

RestAssured Json response verification with GPath

我收到以下针对我的 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"));

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

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

meta.display.topic.find { it.contentType != null }.contentType[0]