Во время работы над RestAssured я наткнулся на концепцию сериализации и десериализации (классы POJO), чтобы прочитать и проверить ответ. Я прошел некоторый урок и смог создать класс POJO на основе моего ответа.
Однако, когда я использую ссылку на класс POJO в своих тестах, я не могу использовать блок then () для разных утверждений. Ниже детали могут прояснить ситуацию немного больше:
TestMethod без POJO:
public void listUsers() {
RestAssured.baseURI="https://reqres.in/";
Response res = RestAssured.given()
.contentType("application/json")
.queryParam("page", 2)
.when()
.get("/api/users")
.then()
.assertThat().statusCode(200).and()
.body("page", Matchers.equalTo(2)).and()
.body("total", Matchers.greaterThanOrEqualTo(1))
.body("data.email", Matchers.hasItem("george.edwards@reqres.in"))
.extract().response();
JsonPath jsonpath = new JsonPath(res.asString());
System.out.println(jsonpath.get("data[0].email"));
}
Метод тестирования с POJO:
public void listUserswithPOJO() {
RestAssured.baseURI="https://reqres.in/";
ListUsers res = RestAssured.given()
.contentType("application/json")
.queryParam("page", 2)
.when()
.get("/api/users").as(ListUsers.class);
System.out.println(res.getData().get(1).getEmail());
}
Класс тестирования:
@Test
public void listUsersTest() {
ReqResApi TS1 = new ReqResApi();
TS1.listUserswithPOJO();
}
Я хочу сохранить утверждения блока then, как и при использовании классов POJO. Когда я пытаюсь сделать это после as (ListUser.class), он выдает ошибку компиляции, что then () не определено для класса ListUser.
Есть ли способ, которым я могу использовать как класс POJO, так и блок then () в моих тестах с уверенностью?