放心"或"条件

时间:2016-12-09 13:47:09

标签: rest-assured

我有REST用于按名称查找用户,对于某些搜索字词,该用户会返回在名字或姓氏中包含该字词的用户。

GET /search/joe

返回json数组:

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

如何使用restassured测试此REST并验证给定搜索词是否包含在每行的名字或姓氏中,不区分大小写?

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

1 个答案:

答案 0 :(得分: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个对象,请查看使用Jackson或JsonPath来简化验证。您还可以考虑使用Hamcrest进行验证。