【发布时间】:2020-12-18 08:30:14
【问题描述】:
我正在使用几年前使用的放心的东西。这样做时,我的项目中有一个包含 Json 文件的文件夹。我将这些与 API 响应的实际结果进行了比较。解决此问题的最佳方法是什么。我显然需要我的项目中的文件位置,并且需要将它与我的响应进行比较。有没有标准的方法来做到这一点。
原来我有这个。只是为了从身体上检查城市,但我想要整个东西。
@Test
public void GetCity() {
given().
when().
get(city).
then().
assertThat().
body(("city"), equalTo(city));
}
但我想在下面得到这样的东西:
@Test
public void GetCity() {
given().
when().
get(city).
then().
assertThat().
JsonFile(("/Myjson"), equalTo(response));
}
我目前正在使用 TestNg,但我记得使用 Cucumber Scenarios,它允许我在数据表中测试多个响应。我的问题是如何实现上述目标?
{
"id": 25,
"first_name": "Caryl",
"last_name": "Ruberry",
"email": "cruberryo@smugmug.com",
"ip_address": "222.10.201.47",
"latitude": 11.8554828,
"longitude": -86.2183907,
"city": "Dolores"
}
【问题讨论】:
-
我通常只是比较 JSON 的架构,而不是实际内容。
-
将两者保存到
POJO并使用equals()方法 -
@Fenio 我已经阅读了教程,我想我明白了。如果列表中有 1000 个用户怎么办。这肯定不是最好的做法吗?
-
这可能正是 POJO 是个好主意的原因。您只需创建
List<UserEntity>,其中UserEntity是单个对象的表示。然后,您可以使用for循环或Streams迭代List以使其更加高效。否则你会怎么做?我个人有一个项目,我需要比较多个 JSON,每个 JSON 有 18-7000 万行,我使用 POJO 使用 StreamAPI 的parallelStream()进行了比较。 -
@Fenio 谢谢,因为我是新手,我只是在练习,你能提供一个代码示例吗?
标签: java json testng rest-assured