I have a JSON response:
["alice", "jason", "steve", "alex"]
then when use rest assured to test:
when().
get("/names").
then().
body(containsInAnyOrder("alice","jason","steve","alex"));
This is not working as I expected, it gives an error:
Expected: iterable over ["alice", "jason", "steve", "alex"] in any order
Actual: ["alice", "jason", "steve", "alex"]
Also tried with:
when().
get("/names").
then().
body(hasItems("alice","jason","steve","alex"));
also not working.
How can I verify a simple JSON array in the response?
To save any clicking, you have to supply a redundant string to the body method call:
when().
get("/names").
then().
body("", hasItems("alice","jason","steve","alex"));
Additionally, even if you only have one item in your array, you still have to use hasItems
rather than hasItem
. For example:
when().
get("/names").
then().
body("", hasItems("alice"));