Response.toString() 返回 io.restassured.internal.RestAssuredResponseImpl@46320c9a 而不是响应正文字符串

DIP*_*ESH 3 gson rest-assured

我正在使用 GSON 序列化和反序列化 JSON 响应,同时作为有效负载和映射响应提供给数据模型。

现在,这里的 id 是从 DB 自动递增的,因此我们在创建有效负载时不需要传递。

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;

 ....

}
Run Code Online (Sandbox Code Playgroud)

测试:

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();
Run Code Online (Sandbox Code Playgroud)

响应实例中的预期响应 {"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; 
Run Code Online (Sandbox Code Playgroud)

但没有运气。

期望响应正文作为字符串,以便我可以使用 GSON 映射到 Java 对象以执行验证但得到 io.restassured.internal.RestAssuredResponseImpl@46320c9a

如果有人可以指导我解决这个问题,我将不胜感激。

非常感谢,

小智 10

@Dipesh

而不是response.body().toString(); 尝试response.getBody().asString();

请参阅我在下面完成的示例代码和输出

代码

package com.restassured.framework.sample;

import static io.restassured.RestAssured.given;

import org.testng.annotations.Test;

import io.restassured.response.Response;

/**
 * @author vamsiravi
 *
 */
public class RestAssuredExample {

    @Test
    public void sampleTest(){
        Response response = given().baseUri("https://jsonplaceholder.typicode.com/").and().basePath("/posts/1").when().get().thenReturn();


        System.out.println(response.body());
        System.out.println("---------------------------");
        System.out.println(response.getBody().asString());
    }

}
Run Code Online (Sandbox Code Playgroud)

输出

io.restassured.internal.RestAssuredResponseImpl@652a7737
---------------------------
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Run Code Online (Sandbox Code Playgroud)