[英]com.jayway.jsonpath.InvalidPathException: Invalid path $myVar.id
在我的 mockito 测试用例中,我使用了下面的代码片段,
this.mockMvc.perform(get(myURL + myId).param("mock", "false").param("filter","false")).andDo(print())
.andExpect(status().isOk()).andExpect(jsonPath("$myVar.id", is(SOME_ID)));
在这一行,我收到以下错误,
com.jayway.jsonpath.InvalidPathException: Invalid path $myVar.id
at com.jayway.jsonpath.internal.PathCompiler.compile(PathCompiler.java:76)
at com.jayway.jsonpath.JsonPath.<init>(JsonPath.java:98)
at com.jayway.jsonpath.JsonPath.compile(JsonPath.java:374)
at org.springframework.test.util.JsonPathExpectationsHelper.<init>(JsonPathExpectationsHelper.java:62)
at org.springframework.test.web.servlet.result.JsonPathResultMatchers.<init>(JsonPathResultMatchers.java:63)
at org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath(MockMvcResultMatchers.java:202)
at com.mypackage.MyTest.testMyMetod(MyTest.java:232)
仅供参考,
我使用 json-path 和 json-path-assert 作为 1.1.0 以下版本的依赖项
我尝试了最新版本 2.4.0 和非常旧的版本 0.8.1
但我遇到了同样的问题。
帮助将不胜感激。
看起来 path 应该是"$.myVar.id"
或"myVar.id"
。 根据PathCompiler
来源,它们是相等的。
我必须在 jsonPath 中使用以下模式匹配器,
.andExpect(jsonPath("$['myVar'].id", is(SOME_ID)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.