放心 "OR" 条件

Restassured "OR" condition

我有 REST 用于按名称查找用户,对于某些搜索词 returns 名或姓中包含该词的用户。

GET /search/joe

returns json 数组:

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

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

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

没有 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 进行验证。