【问题标题】:Compilation error in TestNG test class for JSON to Java objectsJSON 到 Java 对象的 TestNG 测试类中的编译错误
【发布时间】:2019-07-23 05:07:31
【问题描述】:

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

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

为 JSON 对象和 TestNG 测试方法创建了“MyPojo”和“Id”Java 对象类:createTestRun

嵌套的 Json:

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

类: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+"]";
        }
    }

类:ID

    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+"]";
        }
    }

测试类:

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

【问题讨论】:

    标签: java json rest-assured


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      相关资源
      最近更新 更多