我有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(?)
答案 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进行验证。