Преобразование файла JSON в строку в RestAssured (Java) - PullRequest
0 голосов
/ 05 июля 2018

Я использую IntelliJ для изучения RestAssured; это совершенно новая для меня территория. У меня есть простой файл .json, и я хочу получить ответ API для подтверждения, совпадает ли он с упомянутым файлом .json.

В основном: если результат вызова равен тому, что у меня есть в файле json, все хорошо.

Я использовал демо restapi.demoqa.com для быстрого ознакомления. Вот что у меня сейчас:

@Test
public void ComparewithJSONinResources()
{

    String CityResponse = ?????

    RestAssured.baseURI = "http://restapi.demoqa.com/utilities/weather/city";
    RequestSpecification httpRequest = RestAssured.given();
    Response response = httpRequest.request(Method.GET, "/Hyderabad");
    String responseBody = response.getBody().asString();
    System.out.println(responseBody);

    Assert.assertTrue(responseBody.equals(CityResponse));

    response.body();
}

У меня есть файл .json, который называется CityResponse.json. Для удобства, скажем, на месте c: /CityResponse.

Можно ли преобразовать файл Json в строку, чтобы утверждать, что API и JSON равны?

1 Ответ

0 голосов
/ 06 июля 2018

Сравнение JSON как String никогда не даст точных результатов, так как вы, возможно, увидите несогласованность в последовательности, табуляции (отступ), последовательности свойств (пара ключ-значение) и т. Д. Лучше всего разбирать JSON в POJO с помощью одного из много популярных библиотек (например, Джексон, GSON и т. д.). И эта десериализация вам нужна как для ответа RestAssured Http, так и для ответа, который вы читаете из файла .json, и когда у вас есть два объекта java, используйте стандартное сравнение Java путем переопределения метода equals.

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