请放心 - 将 json 路径与另一个路径进行比较
Rest Assured - comparing the json path with another
我有下面的例子json
{"TestJson":{
"Result":"Passed",
"description":"Passed."},
"Students":[{
"Class":{
"Primary":"Yes"
},
"Course":{
"Enrolled":"yes",
"AccountNumber":"2387287382"
},
"AccountNumber":"2387287382",
"Paid":"Yes"
}]}
我想知道如何找到一个好的解决方案。
我目前在做什么
.body("Students[0].Course.AccountNumber",equalTo("2387287382"))
.body("Students[0].AccountNumber",equalTo("2387287382"))
我的测试标准是检查键 Students[0].AccountNumber
匹配 Students[0].Course.AccountNumber
我想这样做,但我找不到类似
的解决方案
.body("Students[0].Course.AccountNumber",equalTo("Students[0].AccountNumber"))
以上显然行不通,但这就是我想要比较的方式。基本上将密钥与另一个密钥进行比较,它们应该匹配。
这可行吗?
一种方法是:
String A =
given ().
when().
get/put/post({api/name})
.extract()
.path("Students[0].Course.AccountNumber");
String B =
given ().
when().
get/put/post({api/name})
.extract()
.path("Students[0].AccountNumber");
Assert.assertEquals(A, B);
似乎此解决方法是唯一的解决方法。
请参阅 rest-assured 文档的 Use the response to verify other parts of the response 部分。您基本上想要创建一个实现 ResponseAwareMatcher<Response>
的 lambda。像这样:
get("/x").then().body("href", response -> equalTo("http://localhost:8080/" + response.path("userId"));
我有下面的例子json
{"TestJson":{
"Result":"Passed",
"description":"Passed."},
"Students":[{
"Class":{
"Primary":"Yes"
},
"Course":{
"Enrolled":"yes",
"AccountNumber":"2387287382"
},
"AccountNumber":"2387287382",
"Paid":"Yes"
}]}
我想知道如何找到一个好的解决方案。
我目前在做什么
.body("Students[0].Course.AccountNumber",equalTo("2387287382"))
.body("Students[0].AccountNumber",equalTo("2387287382"))
我的测试标准是检查键 Students[0].AccountNumber
匹配 Students[0].Course.AccountNumber
我想这样做,但我找不到类似
的解决方案.body("Students[0].Course.AccountNumber",equalTo("Students[0].AccountNumber"))
以上显然行不通,但这就是我想要比较的方式。基本上将密钥与另一个密钥进行比较,它们应该匹配。
这可行吗?
一种方法是:
String A =
given ().
when().
get/put/post({api/name})
.extract()
.path("Students[0].Course.AccountNumber");
String B =
given ().
when().
get/put/post({api/name})
.extract()
.path("Students[0].AccountNumber");
Assert.assertEquals(A, B);
似乎此解决方法是唯一的解决方法。
请参阅 rest-assured 文档的 Use the response to verify other parts of the response 部分。您基本上想要创建一个实现 ResponseAwareMatcher<Response>
的 lambda。像这样:
get("/x").then().body("href", response -> equalTo("http://localhost:8080/" + response.path("userId"));