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

mjqavswn  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(112)

我使用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
如果有人能在这个问题上给我指点,我将不胜感激。
非常感谢,

ryevplcw

ryevplcw1#

@迪佩什
请尝试response.getBody().asString();而不是response.body().toString();
请参阅下面的示例代码和输出
编码

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());
    }

}

输出量

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"
}
ulmd4ohb

ulmd4ohb2#

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()
                  .body("id", equalTo("2234545"));

Hamcrest匹配器导入:

import static org.hamcrest.core.IsEqual.equalTo;

相关问题