Ich habe ein JSON-Feld namens template.welcome.email und ich schreibe einen Komponententest, der prüft, ob dieses Feld in der Antwort vom Server vorhanden ist, aber ich kann kein Escape finden für die Punkte im Namen des Feldes. Der Code von meinem Test ist:JsonPath JUnit Escape-Zeichen für Punkte
@Test
public void testEmailTemplates() throws Exception {
mockMvc.perform(get("/emailTemplates")
.contentType(MediaType.APPLICATION_JSON)
.locale(Locale.UK)
.accept(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(status().isOk())
.andExpect(jsonPath("$.template.welcome.email").exists())
.andExpect(redirectedUrl(null))
.andExpect(forwardedUrl(null));
}
Aber ich die folgende Ausnahme erhalten, weil die Punkte wie Pfade interpretiert werden:
java.lang.AssertionError: No value for JSON path: $.template.welcome.email, exception: invalid path
at org.springframework.test.util.JsonPathExpectationsHelper.evaluateJsonPath(JsonPathExpectationsHelper.java:74)
at org.springframework.test.util.JsonPathExpectationsHelper.exists(JsonPathExpectationsHelper.java:121)
at org.springframework.test.web.servlet.result.JsonPathResultMatchers$3.match(JsonPathResultMatchers.java:77)
at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:141)
at
Kennen Sie ein Escape-Zeichen für die jsonPath?
Ich hatte die gleichen Gedanken, mal sehen ob jemand eine schlaue Idee hat .. – daniele
Ohhh, deshalb funktioniert mein Pfad (mit einem fluchtenden Schrägstrich) nicht! – Tom
Ja, es ist möglich, siehe IDA Antwort –