2015-06-03 70 views
1

例如,假設我有以下JSON響應:Hamcrest matchers json subarray:有沒有辦法使用hasItems來查找子數組中的項目?

{ 
    "0": { 
       "field1" : 5 
       "field2" : 10 
      } 
    "1": { 
       "field1" : 1 
       "field2" : 10 
      } 
} 

是否有某種方式來驗證字段1具有值5和1?我被困在。體在這裏的講話:

.body("[0].field1", Matchers.hasItems(1)); 

這是完全可能的,我不完全理解什麼hasItems是應該做的,因爲我試過很多的組合,[0],[*],和字段名稱和他們都沒有工作。我也希望有一篇關於hamcrest和json的使用文章,它不僅涵蓋了最基本的案例。有人知道我所要求的甚至可能嗎?

感謝您的閱讀。

回答

0

首先你的「json文檔」是無效的。它大概應該是這樣的:

{ 
    "0": { 
       "field1" : 5, 
       "field2" : 10 
      }, 
    "1": { 
       "field1" : 1, 
       "field2" : 10 
      } 
} 

因爲你的目標相匹配只有一個元素,你應該使用equalTo(或is)Hamcrest匹配的路徑:

.body("0.field1", Matchers.equalTo(5)); 

請注意休息Assured不使用「Stefan Goessner」JsonPath語法。它使用Groovy GPath表達式語言。

相關問題