Response.toString () возвращает io.restassured.internal.RestAssuredResponseImpl@46320c9a вместо строки тела ответа - PullRequest
0 голосов
/ 28 июня 2018

Я использую 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

Буду признателен, если кто-нибудь ответит мне по этому вопросу.

Большое спасибо,

Ответы [ 2 ]

0 голосов
/ 01 августа 2018

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

}

Выход

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"
}
0 голосов
/ 29 июня 2018
            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 matcher import:

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