繁体   English   中英

com.jayway.jsonpath.InvalidPathException:无效的路径 $myVar.id

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM