Testen von JSON-Objekten auf Gleichheit unter Ignorieren der untergeordneten Reihenfolge in Java
Bei Unit-Tests ist es üblich, von Webdiensten zurückgegebene JSON-Objekte zu vergleichen zu erwarteten Werten. Einige JSON-Bibliotheken führen jedoch möglicherweise strenge Referenzvergleiche durch, die brüchig sein und aufgrund von Unterschieden in der untergeordneten Reihenfolge fehlschlagen können.
Für diesen Zweck bietet die Skyscreamer JSONAssert-Bibliothek eine Lösung. Sein nicht-strikter Modus ermöglicht Flexibilität durch:
Im Gegensatz dazu verhält sich der strikte Modus konservativer, ähnlich der Testklasse von json-lib.
Um JSONAssert zu verwenden, können Tests wie folgt erstellt werden folgt:
@Test
public void testGetFriends() {
JSONObject data = getRESTData("/friends/367.json");
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
",{id:456,name:\"Solomon Duskis\"}]}";
JSONAssert.assertEquals(expected, data, false); // Non-strict mode
}
Die Parameter in JSONAssert.assertEquals() umfassen die erwartete JSON-Zeichenfolge, die tatsächliche Datenzeichenfolge und ein Flag, das den strikten Modus angibt oder nicht.
JSONAssert liefert klare Fehlermeldungen, was entscheidend ist, wenn Vergleich großer JSON-Objekte, Gewährleistung der Robustheit bei Unit-Tests.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3