Ich versuche, einen Unit-Test mit JUnit zu schreiben, ich möchte eine Funktion mit AssertsEqual testen, wo ich zwei Listen von JsonObjects habe. Unten sind meine tatsächlichen und erwarteten JSON Strings.Vergleichen Sie zwei identische Json-Listen mit Objekten und Feldern innerhalb von Objekten in unterschiedlicher Reihenfolge
String jsonOutput = [ {
id: 1,
name: abc,
age: 23
},
{
id: 2,
name: efg,
age: 26
},
{
id: 3,
name: rst,
age: 26
}
]
String jsonExpected = [ {
id: 2,
name: efg,
age: 26
},
{
id: 1,
age: 23,
name: abc
},
{
id: 3,
name: rst,
age: 26
}
]
In dem obigen Beispiel kann man sehen, dass das Objekt, um für die erwartete Zeichenfolge und die Reihenfolge der einzelnen Felder auch innerhalb der einzelnen Objekte geändert geändert wird.
Bitte meinen Testfall unten finden:
@Test
public void testApply() {
Command command = new Command();
Logger logger = LoggerFactory.getLogger(Command.class.getName());
command.set(logger, new JsonObject());
command.apply(Buffer.buffer(TestConstants.ALL_GAPS));
Object eventList = command.apply(Buffer.buffer(TestConstants.OCCUPIED_GAPS)); // returns a list of json objects
List<JsonObject> expectedList = createExpectedEventList(TestConstants.EVENT_LIST);
Assert.assertEquals(expectedList, eventList);
}
private List<JsonObject> createExpectedEventList(String eventListString) {
JsonArray eventArray = new JsonArray(eventListString);
List<JsonObject> eventList = new ArrayList<>();
for (Object obj : eventArray) {
eventList.add((JsonObject) obj);
}
return eventList;
}
Assert.assertEquals(expectedList, eventList);
Die obige Funktion auch falsch zurück, wenn die gleiche Zeichenfolge zur Verfügung gestellt wird, um die Reihenfolge zu ändern. Ich möchte, dass diese Funktion als wahr zurückgibt, wenn der Inhalt der Zeichenfolge unabhängig von der Reihenfolge gleich ist.
* Was haben Sie bisher versucht * zeigen uns einige Code bitte – Lino
Einheit Testfall gegeben. – Salam
Während ich verstehe, was Sie hier versuchen, bin ich besorgt, dass Sie eine ziemlich kritische Information vermissen. JSON-Arrays, die anders angeordnet sind, sind _nicht_ gleich. –