我正在使用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();
}
我有一个名为CityResponse.json的.json文件。为了便于参考,请在位置c:/ CityResponse上说。
是否可以将Json文件转换为字符串以断言API和JSON相等?
答案 0 :(得分:1)
将JSON与String进行比较将永远不会给出准确的结果,因为您可能会看到空间,制表符(缩进),属性(键值对)排序等方面的不一致。您最好的选择是使用JSON中的一种将JSON解析为POJO许多受欢迎的图书馆(例如Jackson,GSON等)。这种反序列化既需要RestAssured
Http响应,又需要从.json
文件中读取,并且一旦有了两个Java对象,就可以通过覆盖equals
方法来使用标准Java比较。>