JUnit 5 essencial
Ciclo de vida, asserções, testes parametrizados e nomes que explicam a falha.
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