Ich habe Schwierigkeiten herauszufinden, wie mit jsonPath in einer JSON-Dokument-Antwort im Frühjahr mvc. Vielleicht gibt es einen besseren Weg, dies zu erreichen, als jsonPath für dieses spezielle Szenario zu verwenden. Ich würde gerne bestätigen, dass das Links-Array ein rel-Element von "self" hat und dass das "href" -Attribut des Objekts von "self" auch ein "href" -Attribut hat, das gleich "/" ist. Die JSON-Antwort wie folgt aussieht:Asserting Array von Arrays mit JSONPath und Frühjahr mvc
{
"links":[
{
"rel":[
"self"
],
"href":"/"
},
{
"rel":[
"next"
],
"href":"/1"
}
]
}
ich schon versucht, diese, wo ich sehen kann, dass es rel [0] hat sich selbst, aber ich würde es vorziehen, nicht darauf zu verlassen, wo in der Links-Array und rel Array ist das Selbst und teste tatsächlich was das href ist bei Links [rel] [self] ist "/". Irgendwelche Ideen?
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(welcomeController).build();
}
@Test
public void givenRootUrl_thenReturnLinkToSelf() throws Exception {
mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
.andExpect(jsonPath("$.links[0].rel[0].", is("self")));
}
Wissen Sie, ob es einen Weg gibt, dies zu tun, ohne die Array-Indizes hart zu codieren (falls die Reihenfolge anders ist)? –
Kevin, Sie können regexp in Ihrem jsonpath verwenden, wie diese $ .links [? (@. Rel = ~ /.*self/i)] oder so ähnlich. Bitte überprüfen Sie die vollständige Dokumentation hier: https://github.com/json-path/JsonPath –