Ich möchte die Antwort von GET/Birds Anfrage mit einem JSON-Schema überprüfen. In meinem Feature:Wie überprüfe ich zusätzliche Werte mit if-Bedingung (mit Karate-Framework)?
* def abs = read (birds.json)
* match response == abs.birdsSchema
Ich muss das Schema in eine JSON-Datei und nicht in das Feature. Ich muss zusätzliche Werte nach Geschlecht überprüfen. Bsp .: Wenn das Geschlecht männlich ist, dann überprüfe, ob die Farbe blau und der Schwanz lang oder kurz ist. Wenn das Geschlecht weiblich ist, dann überprüfe, ob "singt" wahr oder falsch ist und wie viele Eier es gibt.
Also habe ich in birds.json:
"birdsSchema":{
"id": "#string",
"owner": "#number",
"town": "#? _ == 'New York' || _ == 'Washington'",
"type": "object",
"oneOf": [
{
"properties": {
"gender": {"enum": ["male"]},
"color":"blue",
"tail": "#? _ == 'long' || _ == 'short'"
}
},
{
"properties": {
"gender": {"enum": ["female"]},
"sings" : "#? _ == true || _ == false"
"eggs": "##number"
}
}
]
}
Aber es funktioniert nicht. Fehler: com.intuit.karate.exception.KarateException: Pfad: $ [0] .type, aktuell: 'weiblich', erwartet: 'Objekt', Grund: ungleich. Wie kann ich diese bedingte Überprüfung in meiner JSON-Datei durchführen?
Dank für Ihre schnelle Antwort. Ich weiß, wie man dies in Features dank Karate offiziellen tuto, aber ich wollte dies in einer JSON-Datei tun. Die Idee ist, dass es nur eine JSON-Datei mit einem Schema für Räder geben wird und verschiedene Merkmale diese in Antwortvalidierungen verwenden werden. Wie kann ich das gleiche in JSON-Datei tun? – nirind
JSON Schlüssel sind nicht dynamisch – nirind
ok siehe meine Bearbeitung: \ –