Próbuję utworzyć makiety dla mojej procedury logowania. Używam metody POST z kilkoma polami i obiektem logowania (z loginem, hasłem itp.). Do tego używam JsonPath. Kod poniżej:Dopasowywanie danych w JsonPath z wiremockiem
{
"request": {
"method": "POST",
"url": "/login",
"bodyPatterns" : [
{"matchesJsonPath" : "$.method"},
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
{"matchesJsonPath" : "$.params.login"},
{"matchesJsonPath" : "$.params.password"}
]
},
"response": {
"status": 200,
"bodyFileName": "login.json"
}
}
Sprawdzam clientVersion, ponieważ jest podobny do przykładów.
Moim problemem jest to, że te z danym stanowisku JSON:
{
"method": "login",
"params": {
"clientVersion": "1",
"login": "[email protected]",
"password": "681819535da188b6ef2"
}
}
otrzymam 404. Jednak, kiedy zmienić
{"matchesJsonPath" : "$.params[?(@.clientVersion == "1")]"},
do normalnych
{"matchesJsonPath" : "$.params.clientVersion"},
wszystko działa w porządku.
A więc - jak sprawdzić wnętrze drutu, używając matchJsonPath, jeśli podane pole jest pewne? Jak zastosować ją do pola głównego, tak jak w moim przypadku? I chociaż jesteśmy przy tym - miałem podobne problemy z sprawdzaniem, czy wartość nie jest zerowa. Próbowałem stosować wyrażenia regularne i takie - bez powodzenia.