Я пытаюсь преобразовать вложенные объекты JSON в объекты Java и выполнить тестирование API с помощью restAssured. Я создал класс Java для объектов JSON и тестовый класс, используя TestNG и restAssured. Я получаю ошибку компиляции (java: несовместимые типы: java.lang.String нельзя преобразовать в Id) в тестовом классе при попытке вызвать метод set.
Ошибка : setId (**.Id) в MyPojo нельзя применить к (java.lang.string)
Создан класс объектов Java «MyPojo» и «Id» для объекта JSON и метода тестирования TestNG: 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();
}
public void setId (Id Id)
сигнатура метода требует, чтобы аргумент был типа Id
, а не String
. Вы передаете строку в строке myPojo.setId("23685")
.
Измените его на myPojo.setId(id)