【发布时间】: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