Якщо ви вже використовуєте JUnit, в останній версії зараз використовується Hamcrest. Це загальна рамка відповідності (особливо корисна для тестування одиниць), яку можна розширити, щоб створити нові відповідники.
Існує невелика бібліотека hamcrest-json
з відкритим кодом, яка називається відповідниками JSON. Це добре документально підтверджено, протестовано та підтримано. Нижче наведено кілька корисних посилань:
Приклад коду з використанням об'єктів з бібліотеки JSON org.json.simple
:
Assert.assertThat(
jsonObject1.toJSONString(),
SameJSONAs.sameJSONAs(jsonObject2.toJSONString()));
За бажанням ви можете (1) дозволити масиви "будь-якого порядку" та (2) ігнорувати додаткові поля.
Оскільки існує безліч бібліотек JSON для Java ( Jackson
, GSON
, json-lib
і т.д.), це корисно , що hamcrest-json
підтримує JSON текст (як java.lang.String
), а також спочатку підтримують об'єкти з бібліотеки JSON Дугласа Крокфорд в org.json
.
Нарешті, якщо ви не використовуєте JUnit, ви можете використовувати Hamcrest безпосередньо для тверджень. ( Я про це писав тут. )
toString()
перетворення об'єкта вJSON
рядок.