Я использую GSON для сериализации и десериализации ответа JSON, предоставляя в качестве полезной нагрузки и отображения ответ на модель данных.
Теперь здесь id автоматически увеличивается из БД, поэтому нам не нужно передавать при создании полезной нагрузки.
Полезная нагрузка JSON: (updateCustomer)
{"first_name": "test", "last_name": "user"}
public class Address {
@SerializedName("id")
private Integer id;
@SerializedName("first_name")
private String firstname;
@SerializedName("last_name")
private String lastname;
....
}
Тест:
Response response =
given()
.filter(new RequestLoggingFilter(this.requestCapture))
.filter(new ResponseLoggingFilter(this.responseCapture))
.filter(new ErrorLoggingFilter(this.errorCapture))
.header("Authorization", getSession().getToken())
.body(updateCustomer)
.when()
.put(Resource.UPDATE_CUSTOMER)
.then()
.extract().response();
Ожидаемый ответ в экземпляре ответа
{"id": 2234545, "first_name": "test", "last_name": "user"}
Response.toString () возвращает строку io.restassured.internal.RestAssuredResponseImpl@46320c9a вместо строки тела ответа.
Я пробовал response.body (). ToString (),
@Expose(deserialize = false)
@SerializedName("id")
private Integer id;
но не повезло.
Ожидается тело ответа в виде строки, чтобы я мог сопоставить, используя GSON, объекты Java для выполнения проверки, но получая io.restassured.internal.RestAssuredResponseImpl@46320c9a
Буду признателен, если кто-нибудь ответит мне по этому вопросу.
Большое спасибо,