Si vous utilisez déjà JUnit, la dernière version utilise désormais Hamcrest. Il s'agit d'un cadre de correspondance générique (particulièrement utile pour les tests unitaires) qui peut être étendu pour construire de nouvelles correspondances.
Il existe une petite bibliothèque open source appelée hamcrest-json
avec des correspondances tenant compte de JSON. Il est bien documenté, testé et soutenu. Vous trouverez ci-dessous quelques liens utiles :
Exemple de code utilisant des objets de la bibliothèque JSON org.json.simple
:
Assert.assertThat(
jsonObject1.toJSONString(),
SameJSONAs.sameJSONAs(jsonObject2.toJSONString()));
En option, vous pouvez (1) autoriser les tableaux "d'ordre quelconque" et (2) ignorer les champs supplémentaires.
Comme il existe une variété de bibliothèques JSON pour Java ( Jackson
, GSON
, json-lib
etc.), il est utile que hamcrest-json
supporte le texte JSON (comme java.lang.String
), ainsi que le support natif des objets de la bibliothèque JSON de Douglas Crockford. org.json
.
Enfin, si vous n'utilisez pas JUnit, vous pouvez utiliser Hamcrest directement pour les assertions. ( J'ai écrit à ce sujet ici. )