Dieser Abschnitt enthält ein konkretes Beispiel, das demonstriert, wie JSONUNIT und ASSERTJ für JSON -Unit -Tests in Java verwendet werden. Wir nutzen die fließenden Behauptungen von Asssertj für die Lesbarkeit und die Funktionen von JsonUnit zum Umgang mit JSON -Vergleiche. Denken Sie daran, die erforderlichen Abhängigkeiten in Ihre
(oder äquivalente Build -Datei) aufzunehmen. Assertj bietet eine fließende und lesbare API für Behauptungen. Die Kombination nutzt die Stärken beider Bibliotheken. Die effektive Verwendung umfasst:import org.assertj.core.api.Assertions; import net.javacrumbs.jsonunit.JsonAssert; import org.json.JSONObject; import org.junit.jupiter.api.Test; public class JsonUnitTestExample { @Test void testJsonEquality() { String expectedJson = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}"; String actualJson = "{\"age\":30,\"city\":\"New York\",\"name\":\"John Doe\"}"; JsonAssert.assertEquals(expectedJson, actualJson); //Order doesn't matter with JsonUnit //Alternatively, using AssertJ for more descriptive failure messages: Assertions.assertThat(JsonAssert.jsonObject(expectedJson)).isEqualTo(JsonAssert.jsonObject(actualJson)); } @Test void testJsonPartialEquality() { String expectedJson = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\",\"country\":\"USA\"}"; String actualJson = "{\"name\":\"John Doe\",\"age\":30}"; // Using JsonUnit's ignoring strategy JsonAssert.assertEquals(expectedJson, actualJson, (node1, node2) -> node1.getNodeName().equals("country")); // Alternatively, using AssertJ with JsonUnit's ignoring functionality within a custom comparator // This gives more control and potentially better error messages Assertions.assertThat(JsonAssert.jsonObject(actualJson)).usingComparator(JsonAssert.when( (node1, node2) -> node1.getNodeName().equals("country") )).isEqualTo(JsonAssert.jsonObject(expectedJson)); } @Test void testJsonWithAssertJAssertions(){ JSONObject expectedJson = new JSONObject("{\"name\":\"John Doe\",\"age\":30}"); JSONObject actualJson = new JSONObject("{\"name\":\"John Doe\",\"age\":30}"); Assertions.assertThat(JsonAssert.jsonObject(actualJson).toString()).isEqualTo(expectedJson.toString()); // Or using JsonUnit's direct comparison JsonAssert.assertEquals(expectedJson, actualJson); } }
pom.xml
Das obige ist der detaillierte Inhalt vonJsonUnit Assertj JSON Unit Test Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!