Maison >Java >javaDidacticiel >Comment tester des objets JSON en ignorant l'ordre des enfants ?

Comment tester des objets JSON en ignorant l'ordre des enfants ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 00:06:02554parcourir

How Can You Test JSON Objects Ignoring Child Order?

Test de l'équivalence des objets JSON sans tenir compte de l'ordre des enfants

Lors du test des données JSON renvoyées par les services Web, il est essentiel de disposer d'une bibliothèque d'analyse JSON capable de comparer deux objets JSON tout en ignorant l'ordre des éléments enfants. Ceci est crucial pour les tests unitaires, garantissant que le contenu JSON correspond au format attendu sans dépendre d'un ordre enfant spécifique.

JSONAssert : une solution efficace

Parmi les différentes bibliothèques JSON , JSONAssert de Skyscreamer se distingue par sa capacité à comparer des objets JSON sans tenir compte de l'ordre des enfants. Son mode non strict offre les avantages suivants :

  • Extensibilité de l'objet : Une valeur attendue comme {id:1} correspondrait à {id:1,moredata:'x'} .
  • Ordre des tableaux lâche : Des tableaux comme ['dog','cat'] et ['cat','dog'] seraient considérés comme égaux.

Exemple d'utilisation

Pour utiliser JSONAssert, une méthode de test pourrait être écrite comme suit :

<code class="java">@Test
public void testGetFriends() {
    JSONObject data = getRESTData("/friends/367.json");
    String expected = "{friends:[{id:123,name:\"Corby Page\"}"
        + ",{id:456,name:\"Solomon Duskis\"}]}";
    JSONAssert.assertEquals(expected, data, false);
}</code>

Dans cet exemple, ExpectJSONString est le JSON attendu, actualDataString est le JSON réel, et isStrict est défini sur false pour activer le mode non strict.

Conclusion

JSONAssert fournit une solution robuste pour tester les objets JSON tout en ignorant l'ordre des enfants. Son mode non strict offre flexibilité et précision, réduisant la fragilité des tests unitaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn