RestAssured“或”条件

4

我有一个REST服务,用于通过姓名查找用户。对于某些搜索项,它会返回名字或姓氏中包含该词的用户。

GET /search/joe

返回 JSON 数组:

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

如何使用restassured测试REST API,并验证每一行中的名字或姓氏是否包含给定的搜索词,不区分大小写?
given()
  .when()
    .get("/user/search")
  .then()
    .statusCode(200)
    .body(?)
1个回答

5

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接