Если вы уже используете 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
строку.