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)
我正在尝试将嵌套的 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)