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