Java 请放心-将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

我有下面的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"))

我的测试标准是检查键
学生[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"));