Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2023

ProgramaçãoLinguagens de programação
Código
fg073210
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Médio
Cargo
Técnico Judiciário - Especialidade - Programação de Sistemas
O analista de sua empresa solicitou um teste, com base em JUnit 5, para uma função de leitura de valores inteiros a partir de um socket. Esse teste deve abrir a conexão, verificar um lote de 30 valores recebidos e fechar a conexão ao final.Para criar o teste, uma das ações necessárias é:
  1. Ainterromper o fluxo de leitura com fail;
  2. Banotar o método que abre a conexão com @AfterClass;
  3. Ctestar cada valor recebido com assertInteger;
  4. Dfechar a conexão em um método anotado com @AfterAll;
  5. Eanotar o método que testa o valor com @BeforeEach.
Revelar gabarito e comentário

GabaritoD — fechar a conexão em um método anotado com @AfterAll;

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”.

Testes com JUnit 5 – Ciclo de Vida

Gabarito: letra D. Em JUnit 5, o método que executa uma vez após todos os testes da classe deve ser anotado com @AfterAll. Como o teste descrito precisa abrir conexão, ler 30 valores e fechá-la, o fechamento deve ser feito em um método com @AfterAll para garantir a liberação do recurso ao final.

A questão exige conhecimento das anotações de ciclo de vida do JUnit 5 e suas finalidades.

1@BeforeAll
Uma vez antes de todos os testes
2@BeforeEach
Antes de cada teste
3@AfterEach
Após cada teste
4@AfterAll
Uma vez após todos os testes
Fechar conexão (recurso)
JUnit 5 – Ciclo de vida
LEVELsoulevel.com.br
JUnit 5 – Ciclo de vida: @BeforeAll (Uma vez antes de todos os testes); @BeforeEach (Antes de cada teste); @AfterEach (Após cada teste); @AfterAll (Uma vez após todos os testes, Fechar conexão (recurso))

Alternativa A — ❌ Incorreta

Usar fail() interrompe o fluxo e marca o teste como falha, mas não é uma ação necessária para criar o teste. O fail() serve para forçar uma falha, não para gerenciamento de recursos.

Alternativa B — ❌ Incorreta

@AfterClass é uma anotação do JUnit 4. Em JUnit 5, o equivalente é @AfterAll. Além disso, anotar o método que abre a conexão com @AfterClass/@AfterAll seria inadequado, pois a abertura deve ocorrer antes dos testes (@BeforeAll).

Alternativa C — ❌ Incorreta

Não existe um método assertInteger no JUnit. Para verificar valores inteiros, utiliza-se assertEquals(int expected, int actual) ou assertTrue com condições.

Alternativa D — ✅ Correta ⟵ GABARITO

Fechar a conexão em um método anotado com @AfterAll é a prática correta. Esse método roda uma única vez após todos os testes da classe, garantindo que o recurso seja liberado independentemente do resultado dos testes.

Alternativa E — ❌ Incorreta

@BeforeEach executa antes de cada método de teste, o que não se aplica ao fechamento da conexão. Além disso, anotar o método que testa o valor com @BeforeEach não faz sentido — o teste em si é o método com @Test.

PEGA ESSA DICA!

Decore as anotações do JUnit 5: @BeforeAll (uma vez antes de todos), @BeforeEach (antes de cada teste), @AfterEach (após cada teste), @AfterAll (uma vez após todos). Confira se a banca usa JUnit 4 (@BeforeClass/@AfterClass) ou JUnit 5 (@BeforeAll/@AfterAll).

Gabarito: letra D.

Link permanente: /questoes/fg073210