mardi 9 février 2016

How to validate correct values of elements inside arrays with Rest assured

I'm trying to validate some properties of my response as shown in the rest assured tutorial.

The problem is that, when testing properties inside an array, I can verify, as in the example, that they appear, but not that they're matched to other properties of the element as they should.

To clarify, let's say I have the response from the tutorial (added "prize")

{
"lotto":{
 "lottoId":5,
 "winning-numbers":[2,45,34,23,7,5,3],
 "winners":[{
   "winnerId":23,
   "prize":5000,
   "numbers":[2,45,34,23,3,5]
 },{
   "winnerId":54,
   "prize":100000,
   "numbers":[52,3,12,11,18,22]
 }]
}
}

I can validate that the winnerIds as 23, and 54

expect().
         body("lotto.lottoId", equalTo(5)).
         body("lotto.winners.winnderId", hasItems(23, 54)).
when().
       get("/lotto");

and I could validate that the prizes are 500 and 100000, but I can't validate that the winnerId=23 has a prize=500 and the winnerId=54 a prize=100000. The response would show the winnerId=23 with a prize=100000 and the tests would pass.

I can't use contains() because the elements in the array can come in any order, so I need to user containsInAnyOrder().

Aucun commentaire:

Enregistrer un commentaire