Testando objetos JSON para igualdade enquanto ignora a ordem filho em Java
Em testes de unidade, é comum comparar objetos JSON retornados de serviços da web aos valores esperados. No entanto, algumas bibliotecas JSON podem realizar comparações de referência estritas, o que pode ser frágil e falhar devido a diferenças na ordem dos filhos.
Para esse propósito, a biblioteca Skyscreamer JSONAssert fornece uma solução. Seu modo não estrito permite flexibilidade ao:
Para utilizar JSONAssert, os testes podem ser construídos como segue:
@Teste public void testGetFriends() { Dados JSONObject = getRESTData("/friends/367.json"); String esperada = "{amigos:[{id:123,nome:\"Corby Page\"}" ",{id:456,nome:\"Solomon Duskis\"}]}"; JSONAssert.assertEquals(esperado, dados, falso); // Modo não estrito }@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); // Non-strict mode
}
JSONAssert fornece mensagens de erro claras, o que é crucial quando comparando grandes objetos JSON, garantindo robustez em testes unitários.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3