Pular para o conteúdo principal

Questão de Programação — Frameworks em Programação — FGV 2023

ProgramaçãoFrameworks 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.
  1. AassertEquals().
  2. BassertIdentical().
  3. CassertNull().
  4. DassertThrowsExactly().
  5. 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).

Gabarito: letra A.

Link permanente: /questoes/fg061574