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