com.jayway.jsonpath.InvalidPathException: неверный путь $ myVar.id - PullRequest
0 голосов
/ 02 октября 2018

В моем тестовом примере 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)

и FYI,

Я использую json-path и json-path-assert в качестве зависимости с версией ниже 1.1.0

, и я попробовал последнюю версию 2.4.0, а также очень старую версию 0.8.1

Но у меня возникла та же проблема.

Помощь будет очень полезна.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Я должен использовать приведенный ниже шаблон соответствия в jsonPath,

.andExpect (jsonPath ("$ ['myVar']. Id", is (SOME_ID)));

0 голосов
/ 02 октября 2018

Похоже, путь должен быть "$.myVar.id" или "myVar.id".Согласно источнику из PathCompiler они равны.

...