Questão de Programação — Frameworks em Programação — FGV 2023
Programação›Frameworks em Programação
Código
fg061574
Banca
FGV
Órgão
Câmara dos Deputados
Ano
2023
Nível
Superior
Cargo
Analista Legislativo - Informática Legislativa - Tarde
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.
AassertEquals().
BassertIdentical().
CassertNull().
DassertThrowsExactly().
EassertTrue().
Revelar gabarito e comentário▾
GabaritoA — assertEquals().
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
JUnit 5 – Métodos de Asserção
Gabarito: letra A. O método assertEquals() do JUnit 5 utiliza internamente Objects.equals(), que considera dois valores null como iguais, satisfazendo exatamente a condição pedida: verificar igualdade entre dois objetos, inclusive se ambos forem nulos.
A banca testa o conhecimento da API de asserções do JUnit 5, especialmente o comportamento de assertEquals com valores null, que é um detalhe comum em questões de certificação e provas.
Métodos de asserção (JUnit 5)
1Comparação de objetos
assertEquals(expected, actual)
Usa Objects.equals()
null == null (true)
assertSame(expected, actual)
Compara referência (==)
2Verificação de null
assertNull(objeto)
Apenas 1 parâmetro
3Exceção
assertThrowsExactly()
Lançamento de exceção específica
4Condição booleana
assertTrue(condição)
Exige expressão do programador
Não trata null automaticamente
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
assertEquals(expected, actual) usa Objects.equals(), que retorna true quando ambos os argumentos são null. Portanto, atende perfeitamente ao requisito: compara dois objetos e considera-os iguais se ambos forem nulos.
Alternativa B — ❌ Incorreta
assertIdentical() não é um método padrão do JUnit 5. O método que compara referências é assertSame(), que verifica se ambos os parâmetros apontam para o mesmo objeto na memória. Além disso, assertSame(null, null) retornaria true, mas o nome correto da API é assertSame, não assertIdentical. A banca usou um nome fictício para confundir.
Alternativa C — ❌ Incorreta
assertNull(objeto) verifica se um único objeto é null. Não compara dois objetos, portanto não resolve o problema.
Alternativa D — ❌ Incorreta
assertThrowsExactly() é usado para verificar se uma execução lança exatamente uma exceção específica. Não tem relação com comparação de igualdade.
Alternativa E — ❌ Incorreta
assertTrue(condição) exige que o programador forneça uma expressão booleana. Para comparar dois objetos, seria necessário escrever algo como assertTrue(obj1.equals(obj2)), que não trata corretamente null (lançaria NullPointerException se obj1 fosse null). Além disso, não é um único método utilitário dedicado à igualdade, contrariando o enunciado.
NÃO CAIA NESSA!
A banca tenta confundir assertEquals com assertSame (ou com o termo fictício assertIdentical). Lembre-se: assertEquals usa equals() e trata null como igual; assertSame compara referências com ==. Em provas, leia atentamente se a questão menciona "igualdade" (equals) ou "identidade" (mesma referência).