Как удалить ненужные ключи из гарантированного покоя объекта ответа и подтвердить оставшиеся данные объекта с помощью постоянной переменной, содержащей строку json, используя java - PullRequest
0 голосов
/ 21 мая 2019

В спокойных тестовых примерах я получаю ответ, как уже упоминалось, где я хочу удалить ключи, такие как "updated_at", "Удаленный_кат", "создан_кат" и "уведомление", а затем утверждать этот объект ответа с ожидаемой строковой константой json который содержит «настройки»

{ 
    "notice": "The Settings are updated successfully.",
    "settings": {
    "push_notification": {
        "enabled": true,
        "credentials": [{
            "key": "value"
        }],
        "service_name": "API Testing"
    },
    "created_at": "2019-05-04T14:52:32.773Z",
    "deleted_at": "false",
    "updated_at": "2019-05-07T11:23:22.781Z"
    }
}

Для данного ответа ожидаемая строка json ...

public static String SETTING_EXPECTED = "{\"push_notification\": {\"enabled\": true, \"credentials\": [{\"key\": \"value\"}], \"service_name\": \"API Testing\"}}"

Пожалуйста, помогите мне с созданием общего метода с использованием Java, который можно использовать повторно для подтверждения ответов во всех тестовых случаях.

1 Ответ

0 голосов
/ 29 мая 2019

Чтобы удалить ключи из ответа, вы можете использовать приведенный ниже код. Я использую библиотеку jayway jsonpath, вам нужно передать Json Response и имя поля jsonPath, в случае, если ваше значение будет "$ .settings.created_at":

public String deleteFieldNameFromResponse(String jsonResponse, String fieldToDelete)
            throws ParseException, FileNotFoundException, IOException {
        Object obj = null;
        JSONParser parser = new JSONParser();
        JsonPath jsonPath = null;
        DocumentContext docCtx = null;

        obj = parser.parse(jsonResponse);

        docCtx = JsonPath.parse(obj);

        docCtx.delete(fieldToDelete);

        jsonPath = JsonPath.compile("$");

        return docCtx.read(jsonPath).toString();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...