Ошибка компиляции в тестовом классе TestNG для объектов JSON в Java

Я пытаюсь преобразовать вложенные объекты 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();
          }
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

public void setId (Id Id) сигнатура метода требует, чтобы аргумент был типа Id, а не String. Вы передаете строку в строке myPojo.setId("23685"). Измените его на myPojo.setId(id)

Другие вопросы по теме