Se você já está usando o JUnit, a versão mais recente agora emprega o Hamcrest. É uma estrutura de correspondência genérica (especialmente útil para testes de unidade) que pode ser estendida para criar novos correspondentes.
Há uma pequena biblioteca de código aberto chamada hamcrest-json
com correspondências compatíveis com JSON. Está bem documentado, testado e suportado. Abaixo estão alguns links úteis:
Código de exemplo usando objetos da biblioteca JSON org.json.simple
:
Assert.assertThat(
jsonObject1.toJSONString(),
SameJSONAs.sameJSONAs(jsonObject2.toJSONString()));
Opcionalmente, você pode (1) permitir matrizes de "qualquer ordem" e (2) ignorar campos extras.
Uma vez que há uma variedade de bibliotecas JSON para Java ( Jackson
, GSON
, json-lib
, etc.), é útil que hamcrest-json
o texto suportes JSON (como java.lang.String
), objetos, bem como nativamente suporte da biblioteca JSON de Douglas Crockford org.json
.
Por fim, se você não estiver usando o JUnit, poderá usar o Hamcrest diretamente para asserções. ( Eu escrevi sobre isso aqui. )
toString()
para converter o objeto emJSON
string.