2017-03-27 6 views
7

私のレスポンスがJSONであるとしましょうかまたはが含まれていますか特定のフィールドはありますか?REST Assuredでは、フィールドが存在するかどうかを確認する方法はありますか?

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

私はJSONがフィールドに年齢を含んでいたりしませんか主張する方法を探しています。

答えて

0

あなたはこのように等号(null)を使用することができます。フィールドはフィールドがヌルであるwhetever

+2

これは、nullに設定されたJSONフィールドでも一致します。 –

+0

あなたは正しいですが、nullを受け取った場合、基本的には同じです –

0

チェックnullになりますが存在しない場合は

.body("surname", equals(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(); 
14

あなたにもJSON文字列にHamcrestマッチャhasKey()を使用することができます。

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

これは正解ですが、そのようにマークしないのはなぜですか? –

関連する問題