您如何使用 restassure 将整个 Json 文件与其响应进行比较?



我用的是几年前用过的重新加压的东西。在这样做的时候,我的项目中有一个包含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场景,它允许我在数据表中测试多个响应。我的问题是如何实现上述目标?

{
"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"
}

我从问题中理解的是从API获得响应,并与JSON文件进行比较。如何操作:

@Test
public void GetCity() {
Response response = when().
get(city).
then().
extract()
response();
}

首先,我们提取Response对象,该对象包含状态代码或响应体等信息。在这种情况下,它将是JSON。在提取它之前,让我们创建一个具有JSON表示的POJO:

{
"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可以用下面的类表示:

public class UserEntity {
public Long id; //id is exact name field in JSON
@JsonProperty("first_name"); //other approach
public String firstName;
public String last_name;
public String email;
public String ip_address;
public Long latitude;
public Long longitude;
public String city;
} 

现在,我们可以将JSON响应体转换为这样的类:

@Test
public void GetCity() {
Response response = when().
get(city).
then().
extract()
response();
UserEntity userEntityResponse = response.jsonPath().getObject("$", UserEntity.class);
}

"$"表示JSON文件的根(第一个对象{}(。这就是响应被翻译成POJO的方式。我们可以在一个非常相似的事情

Response response = when().
get(city).
then().
extract()
response();
UserEntity userEntityResponse = response.jsonPath().getObject("$", UserEntity.class);
UserEntity userEntityFile = JsonPath.from(new File("file path"));

现在你可以很容易地将它们进行比较,比如:

assertEquals(userEntityFile.id, userEntityResponse.id);

你也可以覆盖hashCode()equals()方法,但如果你只是在学习:(

相关内容

  • 没有找到相关文章

最新更新