2017-05-08 8 views
1

나머지 API를 테스트하는 데 안심입니다. 객체의 배열을 반환하는 json 응답이 있습니다. 특정 값 테스트가있는 오브젝트가 있는지 확인하고 싶습니다.Rest-Assured - 소유에 관계없이 목록에있는 값 집합에 대한 json 본문입니다.

값 1 & 값 2에서 : 나는 관계없이 위치의 내가 하나 개의 항목이 것을 확인할 수 있도록

{ 
    "contents" : [ 
     { 
       "field1" : "value1", 
       "field2" : "value2" 
     }, 
     { 
       "field1" : "value3", 
       "field2" : "value4" 
     } 
    ] 
} 

내가 몸 주장을 쓰기 어떻게 :

예 JSON : 다음 예제를 확인 각각의 필드는 이고 값이 다른 항목은 &4입니다.

...get ("/myEndpoint") 
.then() 
.body ("contents.?????", contains...) 

답변

0

"위치에 관계없이"의 의미에 따라 결정됩니다.

당신은 contents에 관계없이 위치의 의미 그러나 당신이 이렇게 할 수 field2 전에 field1 지정하는 것이 중요 경우

when(). 
     get("/myEndpoint"). 
then(). 
     root("contents.any { it == ['field1':'%s', 'field2':'%s'] }"). 
     body(withArgs("value1", "value2"), is(true)). 
     body(withArgs("value3", "value4"), is(true)); 

을 당신이 좋아 할 수 field2 전에 field1가 지정된 경우 상관하지 않는 경우 이 :

when(). 
     get("/myEndpoint"). 
then(). 
     root("contents"). 
     body("", hasItems(hasEntry("field2", "value2"), hasEntry("field1", "value1")), 
      "", hasItems(hasEntry("field1", "value3"), hasEntry("field2", "value4"))); 

당신은 "루트 경로"here에 읽을 수 있습니다.