放心 - 将 json 响应与本地 json 文件进行比较



>我有一个本地json文件test.json

[
{
"id": 1,
"title": "test1"
},
{
"id": 2,
"title": "test2"
}
]

用于读取 json 文件的类

public static String getFileContent(String fileName){
String fileContent = "";
String filePath = "filePath";
try {
fileContent = new String(Files.readAllBytes(Paths.get(filePath)));
return fileContent;
}catch(Exception ex){
ex.printStackTrace();
}finally{
return fileContent;
}
}

我使用放心提出请求并获得相同的 json 响应

String fileContent= FileUtils.getFileContent("test.json");
when().
get("/testurl").
then().
body("", equalTo(fileContent));

这是我从本地文件中得到的

[rn  {rn    "id": 1,rn    "title": "test1"rn  },rn  {rn    "id": 2,rn    "title": "test2"rn  }rn]

这是实际响应:

[{id=1, title=test1}, {id=2, title=test2}]

有没有更好的方法来比较这两者?我尝试做类似fileContent.replaceAll("\r\n| |"", "");的事情,但它只是删除了所有空间[{id:1,title:test1},{id:2,title:test2}]有什么帮助吗?或者任何只比较内容而忽略换行符、空格和双引号的方法?

您可以使用以下任一方法

JsonPath :

String fileContent = FileUtils.getFileContent("test.json");
JsonPath expectedJson = new JsonPath(fileContent);
given().when().get("/testurl").then().body("", equalTo(expectedJson.getList("")));

杰克逊:

String fileContent = FileUtils.getFileContent("test.json");
String def = given().when().get("/testurl").then().extract().asString();
ObjectMapper mapper = new ObjectMapper();
JsonNode expected = mapper.readTree(fileContent);
JsonNode actual = mapper.readTree(def);
Assert.assertEquals(actual,expected);

GSON :

String fileContent = FileUtils.getFileContent("test.json");
String def = given().when().get("/testurl").then().extract().asString();
JsonParser parser = new JsonParser();
JsonElement expected = parser.parse(fileContent);
JsonElement actual = parser.parse(def);
Assert.assertEquals(actual,expected);

相关内容

  • 没有找到相关文章

最新更新