Java 请放心-将json路径与其他路径进行比较
我有下面的json示例Java 请放心-将json路径与其他路径进行比较,java,testing,rest-assured,web-api-testing,rest-assured-jsonpath,Java,Testing,Rest Assured,Web Api Testing,Rest Assured Jsonpath,我有下面的json示例 {"TestJson":{ "Result":"Passed", "description":"Passed."}, "Students":[{ "Class":{ "Primary":"Yes" }, "Course":{ "Enrolled":"yes", "AccountNumber":"2387287382" }, "AccountNum
{"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"))
我的测试标准是检查键
学生[0]。AccountNumber
匹配学生[0]。课程。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);
看来这是唯一的解决办法 请参阅“放心文档”部分。基本上,您希望创建一个lambda实现ResponseAwareMatcher
。大概是这样的:
get("/x").then().body("href", response -> equalTo("http://localhost:8080/" + response.path("userId"));