← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

O JUnit 5 é um framework open-source amplamente utilizado na criação de testes unitários automatizados na linguagem de programação Java. Pedro quer escrever uma classe que represente um teste unitário usando este framework. É correto afirmar que esta classe de teste deve

Gabarito: D

No JUnit 5, a classe de teste não precisa de firula: ela deve ser uma classe concreta, acessível ao framework e organizada de acordo com as regras do Jupiter. O detalhe cobrado pela banca aqui é que a classe de teste pode ter apenas um construtor, porque o JUnit precisa conseguir instanciar a classe de forma previsível antes de executar os métodos de teste. Na prática, o framework cria uma nova instância da classe de teste para executar os testes, o que ajuda no isolamento entre eles. Por isso, não faz sentido exigir que a classe seja abstract, nem que seja private, porque o JUnit precisa enxergá-la e instanciá-la. Também não existe anotação @TestCase no JUnit 5; o marcador clássico é @Test. A alternativa D está correta porque a classe de teste deve possuir um único construtor. Isso está alinhado com a forma como o JUnit Jupiter trabalha com criação de instâncias e injeção de dependências, permitindo que o framework saiba exatamente como montar o objeto de teste. Em termos práticos, é a regra que a banca quer que você reconheça quando pensa em estrutura de classe de teste no JUnit 5. Resumo de prova: se a questão falar em classe de teste no JUnit 5, desconfie de palavras como abstract, private e anotações inventadas. O básico é lembrar que os testes são executados por métodos anotados e que a classe precisa ser instanciável pelo framework.

Continue treinando

Questões relacionadas