Questão de Programação — Linguagens de programação — FGV 2023
Programação›Linguagens 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 é:
Ainterromper o fluxo de leitura com fail;
Banotar o método que abre a conexão com @AfterClass;
Ctestar cada valor recebido com assertInteger;
Dfechar a conexão em um método anotado com @AfterAll;
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.
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).