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, é:
- A)@BeforeEach;
@BeforeEach executa antes de cada metodo de teste, entao serviria para inicializacao repetida, nao para abrir a conexao uma unica vez.
- B)@AfterAll;
@AfterAll executa depois de todos os testes, portanto e usada para encerrar recursos no final, nao para abrir a conexao no inicio.
- C)@AfterEach;
@AfterEach executa ao final de cada teste, o que ate poderia fechar algo por teste, mas nao abre a conexao antes de toda a classe.
- D)@BeforeAll;
@BeforeAll e a anotacao correta no JUnit 5 para executar a abertura da conexao uma vez antes de todos os testes da classe.
- E)@AfterClass.
@AfterClass e uma anotacao associada ao JUnit 4, nao ao JUnit 5, entao nao e a resposta pedida.
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.