← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

O ferramental de testes padrão para a plataforma Java é o JUnit, que utiliza anotações sobre classes e métodos para especificar o conjunto de testes unitários necessários para o projeto. Considere uma classe de teste para ações de inserção em um banco de dados, onde a conexão é preestabelecida, não fazendo parte das ações de inserção, e encerrada ao final de todos os testes. A anotação que precisa ser utilizada no método que abre a conexão, considerando-se a versão 5 do JUnit, é:

Gabarito: D

No JUnit 5, as anotações de ciclo de vida servem para organizar o que acontece antes e depois dos testes. Se a ideia é abrir uma conexao uma unica vez para toda a classe de teste, e nao antes de cada metodo, voce usa um metodo de preparacao global. Isso evita abrir e fechar conexao a cada teste, o que seria mais lento e ate desnecessario quando o recurso pode ser compartilhado com seguranca. A anotacao correta nesse caso e @BeforeAll, porque ela executa o metodo uma vez antes de todos os testes da classe. Em cenarios como acesso a banco, isso faz sentido quando a conexao e preestabelecida e deve ficar disponivel durante toda a bateria de testes. No JUnit 5, essa anotacao substitui a ideia antiga de preparo geral que muitos lembram do JUnit 4. Importante: no JUnit 5, @BeforeAll normalmente precisa ser usada em metodo estatico, a menos que a classe esteja configurada com uma instancia por classe. A logica aqui e simples: se a conexao so precisa ser aberta uma vez, voce nao quer repetir o trabalho a cada teste. Menos ruido, menos custo, mais previsibilidade. Por isso o gabarito e D. As demais alternativas tratam de limpeza apos testes ou de preparacao por teste individual, o que nao combina com a descricao da questao.

Continue treinando

Questões relacionadas