我使用GSON来序列化和反序列化JSON响应,同时提供有效负载并将响应Map到数据模型。
现在,这里的id是从DB自动递增的,因此我们在创建有效负载时不需要传递。
JSON负载:(更新客户){“名字”:“测试”,“姓氏”:“用户”}
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,“名字”:“test”,“姓氏”:“user”}
toString()返回io.restassured.internal.RestAssuredResponseImpl@46320c9a,而不是响应主体字符串。
我已经尝试了响应.body().toString(),
@Expose(deserialize = false)
@SerializedName("id")
private Integer id;
但运气不好。
期望响应主体为字符串,以便我可以使用GSONMap到Java对象来执行验证,但获得io.restassured.internal.RestAssuredResponseImpl@46320c9a
如果有人能在这个问题上给我指点,我将不胜感激。
非常感谢,
2条答案
按热度按时间ryevplcw1#
@迪佩什
请尝试
response.getBody().asString();
而不是response.body().toString();
请参阅下面的示例代码和输出
编码
输出量
ulmd4ohb2#
Hamcrest匹配器导入: