Java 放心-如何使用POJO验证响应主体

Java 放心-如何使用POJO验证响应主体,java,api,automation,rest-assured,rest-assured-jsonpath,Java,Api,Automation,Rest Assured,Rest Assured Jsonpath,我是大学一年级的学生,请放心。 我有一个获取响应体的简单测试,我想验证响应体是否与我的POJO类匹配 这是我的测试: @Test public void getMySmartPlansList() { MySPList mysp = new MySPList(); given().log().all().spec(getReqSpec()) .get(Endpoints.getMY_SP()) .then().assertThat().sta

我是大学一年级的学生,请放心。 我有一个获取响应体的简单测试,我想验证响应体是否与我的POJO类匹配

这是我的测试:

  @Test
  public void getMySmartPlansList() {
    MySPList mysp = new MySPList();

      given().log().all().spec(getReqSpec())
      .get(Endpoints.getMY_SP())
      .then().assertThat().statusCode(200).body("first_page_url", equalTo(mysp.getFirst_page_url()));
    System.out.println("SUCCESS");
  }
这是我的POJO课程:

package com.payloads;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import java.util.List;

@Getter
public class MySPList {
  private int current_page;
  private List<MySPObject> data;
  private String first_page_url = "/?page=1";
  private int from;
  private int last_page;
  private String last_page_url;
  @JsonIgnore private String next_page_url; ////
  private String path;
  private int per_page;
  @JsonIgnore private String prev_page_url; ////
  private int to;
  private int total;
}
package com.payloads;
导入com.fasterxml.jackson.annotation.JsonIgnore;
进口龙目吸气剂;
导入java.util.List;
@吸气剂
公共阶级神秘主义者{
当前页面的私有int;
私人名单数据;
私有字符串first_page_url=“/?page=1”;
私人int来自;
私人int最后一页;
私有字符串最后一页url;
@JsonIgnore下一页的私有字符串\u url////
私有字符串路径;
每页专用整数;
@JsonIgnore私有字符串prev_page_url////
私有int to;
私人整数合计;
}
那么,如何验证响应主体结构是否等于我的POJO类呢


提前感谢

尝试以下方法:

MyPOJO MyPOJO=RestAssured.given()
.get(新URL(“https://YOU_URL"))
.getBody()
.as(MyPOJO.class);

然后像往常一样将该对象与黄金对象进行比较。

尝试以下方法:

MyPOJO MyPOJO=RestAssured.given()
.get(新URL(“https://YOU_URL"))
.getBody()
.as(MyPOJO.class);

然后像往常一样将物品与您的金色物品进行比较。

您能告诉我您在这里的意思吗?“然后像往常一样将物品与您的金色物品进行比较。”?您有物品A和物品B。前者是您期望得到的,后者是您从服务中得到的。现在您可以使用任何适当的方法来测试它们是否相等(例如
equals()
method)equals()方法将检查两个对象的字段值是否相等,不是吗?字段值不是我的目标,我只想比较两个对象是否具有相同的字段和字段类型。如果返回的对象与类的架构不匹配,则会出现异常。如果您谈论的是
equals
,则需要重写该方法,因为对于两个不同的类,默认实现将返回
false
实例。如果要将对象与hasset、hashtree或hashsomething一起使用,还应该重写hashcode。IDE通常可以自动生成equals和hashcode方法。您能告诉我您在这里的意思吗?“然后像往常一样将该对象与您的黄金对象进行比较。”?您有对象A和对象B。前者是您期望得到的,后者是您从服务中得到的。现在您可以使用任何适当的方法来测试它们是否相等(例如
equals()
method)equals()方法将检查两个对象的字段值是否相等,不是吗?字段值不是我的目标,我只想比较两个对象是否具有相同的字段和字段类型。如果返回的对象与类的架构不匹配,则会出现异常。如果您谈论的是
equals
,则需要重写该方法,因为对于两个不同的类,默认实现将返回
false
实例。如果要将对象与hasset、hashtree或hashsomething一起使用,还应该重写hashcode。IDE通常可以自动生成equals和hashcode方法。您需要匹配模式还是内容?以下哪项是您的要求?@WilfredClement我不关心内容,所以只需要匹配模式。我找到了一种匹配json模式文件的方法,但它不适合,因为我需要匹配POJO。您需要匹配模式还是内容?以下哪项是您的要求?@WilfredClement我不关心内容,所以只需要匹配模式。我找到了一种与json模式文件匹配的方法,但它不适合,因为我需要与POJO匹配