Sobes.tech
Junior — Middle

Quais são as diferenças entre as versões do JUnit 4 e JUnit 5 no contexto de testes?

sobes.tech IA

Resposta da IA

As principais diferenças entre JUnit 4 e JUnit 5:

  • Arquitetura: O JUnit 5 é composto por vários módulos (JUnit Platform, JUnit Jupiter, JUnit Vintage), permitindo executar testes de diferentes versões e expandir funcionalidades. O JUnit 4 é monolítico.

  • Anotações:

    • Novas anotações foram introduzidas no JUnit 5: @BeforeEach em vez de @Before, @AfterEach em vez de @After, @BeforeAll em vez de @BeforeClass, @AfterAll em vez de @AfterClass.
    • @Test no JUnit 5 suporta novas funcionalidades, como indicar exceções esperadas usando assertThrows em vez do parâmetro de anotação.
  • Extensibilidade: O JUnit 5 fornece um modelo extensível de extensões (Extension API), substituindo regras e runners do JUnit 4.

  • Suporte a expressões lambda e Java 8+: O JUnit 5 utiliza recursos do Java 8, facilitando a escrita de testes e melhorando a legibilidade.

  • Testes parametrizados: O suporte a testes parametrizados foi aprimorado no JUnit 5 com fontes de dados mais flexíveis.

Exemplo de um teste simples no JUnit 5:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {
    @Test
    void addition() {
        assertEquals(2, 1 + 1);
    }
}

O JUnit 5 é mais moderno e flexível, recomendado para novos projetos, mas o JUnit 4 ainda é amplamente utilizado e suportado.