Sobes.tech
Junior — Middle

Pode explicar o conceito de extensões no JUnit e como elas são usadas para configurar casos de teste?

sobes.tech IA

Resposta da IA

Nas extensões do JUnit (Extensions), trata-se de um mecanismo que permite adicionar comportamentos adicionais aos testes, como configuração do ambiente, gestão do ciclo de vida do teste, tratamento de exceções e muito mais. No JUnit 5, as extensões são implementadas através da interface Extension e suas subinterfaces, como BeforeEachCallback, AfterEachCallback, ParameterResolver e outros.

A aplicação de extensões ocorre através da anotação @ExtendWith, que indica quais classes de extensão devem ser conectadas à classe ou método de teste.

Exemplo de uso de uma extensão para exibir uma mensagem antes de cada teste:

import org.junit.jupiter.api.extension.*;

public class MyExtension implements BeforeEachCallback {
    @Override
    public void beforeEach(ExtensionContext context) {
        System.out.println("Antes de executar o teste: " + context.getDisplayName());
    }
}

@ExtendWith(MyExtension.class)
public class MyTests {
    @Test
    void testExample() {
        // código de teste
    }
}

Dessa forma, as extensões permitem configurar e modificar de forma centralizada o comportamento dos testes sem duplicação de código.