Testen jsonpath, dass array enthält spezifisch Objekte in beliebiger Reihenfolge
Teste ich ein Spring-controller, die geben wieder einen 400 Fehler im Feld. Diese Fehler im Feld ist ein array von Objekten mit einem "path" und "Nachricht" - Feld.
Nun will ich testen, dass einige spezifische Aufruf gibt mehrere Fehler mit einem bestimmten Pfad und eine Nachricht ein.
Komme ich nicht auf alles näher unten:
.andExpect(jsonPath("$.fieldErrors[*].path", containsInAnyOrder("title", "description")))
.andExpect(jsonPath("$.fieldErrors[*].message", containsInAnyOrder(
"The maximum length of the description is 500 characters.",
"The maximum length of the title is 100 characters.")));
Aber dies hält die option offen, die schlechten Kombinationen von "Pfad" und "Nachricht" gefasst.
Irgendwelche Ideen, wie zur Verbesserung der jsonpath um dies zu testen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies scheint der bessere Ansatz:
Nur erweitert auf die Antwort von Marcel, als es mir geholfen, lösen das gleiche Problem, aber ich musste Sie leicht ändern. Ich fand, dass das '&&' - operator nicht unterstützt in der version von jsonpath derzeit nutzen wir in einem Projekt (0.8.1), nach diesem Problem, es war markiert als "fertig" im Dez 8. was bedeutet es sollte in der neuesten version 2.0:
JSON-Pfad Ausgabe 27 - UND Betreiber
Den "alten" syntax für logische UND, die landete ich mit ist auch zu sehen, dass Ausgabe und anhand des Beispiels oben wäre das: