2016-12-09 8 views
2

У меня есть REST для поиска пользователей по имени, которые для некоторого поискового запроса возвращают пользователей, у которых есть этот термин от имени или фамилии.Restassured "OR" условие

GET /search/joe 

возвращает массив JSON:

[ 
    {"id": 1, "firstName": "Joe", "lastName": "Doe"}, 
    {"id": 2, "firstName": "Alex", "lastName": "Joelson"} 
] 

Как проверить эту REST с restassured и убедитесь, что данный термин поиска содержится в первом или фамилии каждой строки, нечувствительны к регистру?

given() 
    .when() 
    .get("/user/search") 
    .then() 
    .statusCode(200) 
    .body(?) 

ответ

3

Без User объекта:

Response response = given().when().get("/user/search"); 
response.then().statusCode(200); 

JSONArray users = new JSONArray(response.asString()); 
for (int i = 0; i < users.length(); i++) { 
    JSONObject user = users.getJSONObject(i); 
    String firstName = user.getString("firstName").toLowercase(); 
    String lastName = user.getString("lastName").toLowercase(); 

    Assert.assertTrue(firstName.contains("joe") || lastName.contains("joe")); 
} 

Если у вас есть User объект, изучить с помощью Джексона или JsonPath, чтобы сделать проверки проще. Вы также можете изучить использование Hamcrest для проверки.

 Смежные вопросы

  • Нет связанных вопросов^_^