在 REST Assured 中,如何检查响应中是否存在字段?

2022-09-01 09:26:59

如何确保我的响应(假设它是 JSON 格式)包含不包含特定字段?

when()
    .get("/person/12345")
.then()
    .body("surname", isPresent()) // Doesn't work...
    .body("age", isNotPresent()); // ...But that's the idea.

我正在寻找一种方法来断言我的JSON是否包含年龄姓氏字段。


答案 1

您也可以在 JSON 字符串上使用 Hamcrest matcher hasKey() (from class)。org.hamcrest.Matchers

when()
    .get("/person/12345")
.then()
    .body("$", hasKey("surname"))
    .body("$", not(hasKey("age")));

答案 2

你可以像这样使用 equals(null):

.body("surname", equals(null))

如果该字段不存在,它将为 null