0%
JUnit 5 na prática

JUnit 5 essencial

Ciclo de vida, asserções, testes parametrizados e nomes que explicam a falha.

10-15 min

JUnit 5 na prática

Um teste que falha com expected: <true> but was: <false> em um método chamado testCalcul2 custa a você um quarto de hora: é preciso abrir o arquivo, reler a configuração, reconstituir a intenção do autor. O mesmo teste, nomeado un_retrait_superieur_au_solde_est_refuse e terminando com uma asserção AssertJ que exibe o objeto completo, custa cinco segundos. A diferença não é cosmética — ela decide se a sua suíte é uma ferramenta de diagnóstico ou um alarme sem contexto.

O JUnit 5 não é uma versão incremental do JUnit 4: é uma reescrita, com um novo pacote (org.junit.jupiter), um novo modelo de extensão e um ciclo de vida explícito. A confusão mais frequente vem daí: org.junit.Test e org.junit.jupiter.api.Test costumam coexistir no mesmo projeto, e uma classe anotada com a antiga é simplesmente ignorada pelo novo engine. Ela não quebra, ela desaparece. Sempre verifique o número de testes executados após uma migração.

Configuração

Com Maven, uma única dependência basta; o surefire recente detecta o JUnit 5 sem configuração.

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.11.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.26.3</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.5.2</version>
        </plugin>
    </plugins>
</build>

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!