Ich versuche, Mocks für meine Login-Prozedur zu erstellen. Ich benutze die POST-Methode mit ein paar Feldern und Login-Objekt (mit Login, Passwort, etc.) Dafür verwende ich JsonPath. Code unten:Übereinstimmende Daten in JsonPath mit Wiremock
{
"request": {
"method": "POST",
"url": "/login",
"bodyPatterns" : [
{"matchesJsonPath" : "$.method"},
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
{"matchesJsonPath" : "$.params.login"},
{"matchesJsonPath" : "$.params.password"}
]
},
"response": {
"status": 200,
"bodyFileName": "login.json"
}
}
Ich überprüfe die clientVersion, weil es den Beispielen ähnlich ist.
Mein Problem ist, dass mit te JSON gegeben POST:
{
"method": "login",
"params": {
"clientVersion": "1",
"login": "[email protected]",
"password": "681819535da188b6ef2"
}
}
Ich erhalte 404. Allerdings, wenn ich
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
normal
{"matchesJsonPath" : "$.params.clientVersion"},
alles funktioniert ändern Alles gut.
So - wie innerhalb von Wiremock überprüfen, mit matchesJsonPath wenn gegebenes Feld gleich einem Wert? Wie es in meinem Fall auf die root-Feld-Methode anwenden? Und während wir dabei sind - hatte ich ähnliche Probleme mit der Überprüfung, ob der Wert nicht null ist. Ich habe versucht, reguläre Ausdrücke und dergleichen anzuwenden - kein Glück.