2016-12-23 4 views
1

Gegeben Ich habe diesen JSON-Array:Rast-Assured Validieren jedes Element in einem JSON-Array

{ 
    value: ["000", "111", "345", "987"] 
} 

Ich will Ruhe sicher verwenden, um das Format der Felder zu validieren mit ihm gegeben/wenn/dann-Struktur.

Wie bekomme ich Ruhe-versichert, um den Test für jeden Wert im JSON-Array durchlaufen und anwenden?

Ich weiß nicht, wie viele Werte im JSON-Array sein werden. Es könnte nur 1 sein; es könnte 100.

Antwort

2

Sie sein JsonPath und wie folgt etwas tun verwenden:

given(). 
    queryParam("myparam", myparamvalue). 
when(). 
    get(callRoot). 
then(). 
    body("value.*", matchesPattern("[0-9][0-9][0-9]"); 

https://github.com/rest-assured/rest-assured/wiki/usage#json-example Siehe für weitere Details.

Oder man könnte die Antwort als String, verwandeln es zu einem JSONObject, extrahieren extrahieren Sie die JSONArray im values Feld, und dann die Regex zu jedem Element im Array gelten:

Response response = given().queryParam("myparam", myparamvalue).when().get(callRoot). 

JSONObject responseJson = new JSONObject(response.getBody().asString()); 
JSONArray values = responseJson.getJSONArray("values"); 

for(int i = 0; i < values.length(); i++) { 
    String value = values.getString(i); 
    Assert.assertThat(values, matchesPattern("[0-9][0-9][0-9]")); 
} 
Verwandte Themen