Márcia está usando os métodos utilitários do módulo Júpiter do framework JUnit 5 para criar testes automatizados. Para verificar as condições de teste quanto à igualdade entre dois objetos, Márcia gostaria de usar um único método utilitário que comparasse dois parâmetros fornecidos do tipo objeto e que esses objetos sejam considerados iguais, caso ambos sejam nulos. Assinale a opção que indica o método que Márcia deve usar.
- A)assertEquals().
Correta, porque assertEquals() compara igualdade entre objetos e considera dois valores nulos como iguais.
- B)assertIdentical().
Incorreta, porque assertIdentical() não é o método utilitário padrão do JUnit 5 para essa finalidade.
- C)assertNull().
Incorreta, porque assertNull() verifica se um único objeto é nulo, e não compara dois objetos entre si.
- D)assertThrowsExactly().
Incorreta, porque assertThrowsExactly() serve para validar exceção específica, não igualdade de objetos.
- E)assertTrue().
Incorreta, porque assertTrue() testa uma condição booleana, mas não é o método específico para comparar dois objetos.
Gabarito: A
No JUnit 5, os métodos utilitários do módulo Júpiter servem para facilitar a vida de quem testa, especialmente nas asserções. Quando a ideia é comparar dois objetos e considerar o teste aprovado se os dois forem iguais, inclusive se ambos forem nulos, o método clássico é o assertEquals(). Isso combina bem com a lógica de igualdade por conteúdo, e não apenas por referência na memória. Em outras palavras, o teste não quer saber se é o mesmo objeto físico, mas se os valores ou o estado comparado batem. Por isso o gabarito está na letra A: o próprio comportamento esperado do método trata dois nulos como iguais, exatamente como pede o enunciado.