含むまたは含まないのいずれかの特定のフィールドのいずれかで、それがJSONであるとしましょう。
when()
.get("/person/12345")
.then()
.body("surname", isPresent()) // Doesn't work...
.body("age", isNotPresent()); // ...But that's the idea.
JSONにフィールドageおよびsurnameが含まれるかどうかをアサートする方法を探しています。
Hamcrestマッチャーを使用できます hasKey() (from org.hamcrest.Matchers
クラス)もJSON文字列で。
when()
.get("/person/12345")
.then()
.body("$", hasKey("surname"))
.body("$", not(hasKey("age")));
次のようにequals(null)を使用できます。
.body("surname", equals(null))
フィールドが存在しない場合、nullになります
使用:_import static org.junit.Assert.assertThat;
_
あなたの可能性:assertThat(response.then().body(containsString("thingThatShouldntBeHere")), is(false));
Wheteverフィールドがnullであることを確認してください。例えば:
Response resp = given().contentType("application/json").body(requestDto).when().post("/url");
ResponseDto response = resp.then().statusCode(200).as(ResponseDto.class);
Assertions.assertThat(response.getField()).isNotNull();