JSONassert, uma biblioteca para testes
JSONassert é mais um recurso para ser usado em testes, ele permite que seja feita de maneira reduzida a comparação entre chaves e valores entre dois JSONObjects, além disso ele também é capaz de converter uma sequência de caracteres em um objeto JSON a fim de fazer a comparação.
Com o uso desta ferramenta, temos disponíveis dois novos métodos: JSONAssert.assertEquals(expected, data, false) e o JSONAssert.assertNotEquals(expected, data, false). Em ambos os casos, são passados como parâmetro o resultado esperado, o JSON recebido e um boolean.
O Boolean determina o quão rígido será o teste. Caso seja setado como falso, o teste analisará se todas as chaves e valores esperados estejam contidos no JSON, independentemente se este possui mais chaves e valores que o esperado. Porém, caso seja setado como true, será analisado se o objeto possui exatamente as mesmas chaves e valores esperados.
Para realizar um teste desta ferramenta siga os passos abaixo:
Caso seu NetBeans não inclua a o java-json.jar, é necessário baixar este arquivo, que pode ser encontrado no link: http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm .
Além disso, é necessário baixar o jsonassert.jar, que atualmente se encontra na versão 1.4.0, sendo possível baixar o arquivo no link a seguir https://github.com/skyscreamer/JSONassert/releases .
Agora vamos criar um novo projeto no NetBeans, seguindo o menu Arquivo à Novo Projeto. Na caixa de novo projeto, selecione as opções Java e Aplicação Java, como mostrado na figura a seguir.
Na próxima caixa você deve colocar o nome do seu projeto, determinar a localização do projeto e clicar em finalizar, como mostrado na figura a seguir.
Deste modo o projeto foi criado, o próximo passo é adicionar o java-json.jar e o jsonassert.jar na biblioteca do projeto. Para isto deve-se clicar com o botão direito sobre o projeto e selecionar a opção Propriedades.
Na caixa que será aberta, selecione na área de Categorias a opção Biblioteca, clique no botão Adicionar Jar/Pasta e adicione os arquivos .jar .
Agora crie uma nova classe, neste exemplo criei uma classe GerenciadorDeUsuarios. Nesta classe foi inserido um método que retorna um JSONObject, neste método são passados como parâmetro as chaves e valores deste objeto.
Para realizar o teste usando o JSONassert, crie a classe de testes clicando no menu Navegar à Ir para Teste/Classe testada e confirme. Já na classe de teste, crie um objeto do tipo GerenciadorDeUsuarios e um teste, neste teste devem ser criados 2 JSONObject, um representará o resultado obtido e será feito utilizado o método da GerenciadorDeUsuarios, o outro representará o resultado esperado e será criado adicionando as chaves e valores através do método append() pertencente a classe JSONObject.
Por fim, utilizaremos o JSONAssert.assertEquals para comparar as chaves e os valores dos dois objetos, podendo assim executar o teste e analisar o resultado.
JSONassert se mostrou uma ótima ferramenta a ser implementada nos testes, permitindo a redução e simplificação de códigos que visam comparar objetos JSON.