JSON 到 Java 个对象的 TestNG 测试 class 中的编译错误

Compilation error in TestNG test class for JSON to Java objects

我正在尝试将嵌套的 JSON 转换为 Java 对象并使用 restAssured 执行 API 测试。我已经为 JSON 对象创建了 Java class,并使用 TestNG 和 restAssured 测试了 class。我在尝试调用 set 方法时在测试 class 中遇到编译错误(java:类型不兼容:java.lang.String 无法转换为 Id)。

错误: MyPojo中的setId(**.Id)不能应用于(java.lang.string)

为 JSON 对象和 TestNG 测试方法创建了 'MyPojo' 和 'Id' Java 对象 class 和 TestNG 测试方法:createTestRun

嵌套 Json:

{
"Id":{
    "Status":"PASSED",
    "Message":"Run from restAssured",
    "Number": "123"
     }
 }

Class:MyPojo

    public class MyPojo
    {
        private Id Id;

        public Id getId ()
        {
            return Id;
        }

        public void setId (Id Id)
        {
            this.Id = Id;
        }

        @Override
        public String toString()
        {
            return "ClassPojo [Id = "+Id+"]";
        }
    }

Class: 编号

    public class Id
    {
        private String Status;

        private String Message;

        private String Number;

        public String getStatus ()
        {
            return Status;
        }

        public void setStatus (String Status)
        {
            this.Status = Status;
        }

        public String getMessage ()
        {
            return Message;
        }

        public void setMessage (String Message)
        {
            this.Message = Message;
        }

        public String getNumber ()
        {
            return Number;
        }

        public void setNumber (String Number)
        {
            this.Number = Number;
        }

        @Override
        public String toString()
        {
            return "ClassPojo [Status = "+Status+", Message = "+Message+", Number = "+Number+"]";
        }
    }

测试Class:

    @Test
 public void createTestRun() {

    Id id = new Id();
    MyPojo myPojo = new MyPojo();

    myPojo.setId("23685") // Getting Error in this line of code
    id.setSuccess("PASSED");
    id.setConclusion("Run from restAssured");
    id.setRunTime("123");

    Response response = given()
            .auth().preemptive()
            .basic(propertyFile.getUserName(),propertyFile.getPassword())
            .contentType(ContentType.JSON)
            .accept(ContentType.JSON)
            .when()
            .body(id)
            .post(ROOT_URI + TEST_RUN_ID + "/result");
            .then()
            .extract()
            .response();
          }

public void setId (Id Id) 方法签名要求参数的类型为 Id 而不是 String。您正在 myPojo.setId("23685") 行中传递一个字符串。 将其更改为 myPojo.setId(id)