Introdução ao JUnit 5
\n\nJUnit 5 é um framework moderno para testes unitários (unit testing) na linguagem Java. Ele é a evolução do popular JUnit 4 e faz parte do ecossistema Java como o padrão de facto para escrever testes automatizados. JUnit 5 não é apenas uma atualização, mas uma arquitetura completamente reformulada, composta por três subprojetos: JUnit Platform (execução de testes), JUnit Jupiter (novo modelo de programação e extensões) e JUnit Vintage (compatibilidade reversa com JUnit 3/4).
\n\nPor que usar JUnit 5? No desenvolvimento moderno (especialmente em metodologias TDD — Test-Driven Development), testar não é uma opção, mas uma etapa obrigatória. JUnit 5 permite:
\n- \n
- Automatizar a verificação de código: Executar centenas de testes com um único comando. \n
- Garantir confiabilidade de regressão: Certificar-se de que o novo código não quebrou funcionalidades antigas. \n
- Melhorar o design do código: O código testável geralmente é mais modular e com baixo acoplamento. \n
- Documentar o comportamento: Os testes servem como documentação viva, mostrando como uma classe ou método deve funcionar. \n
- Integrar-se em CI/CD: JUnit 5 integra-se facilmente com Maven, Gradle, Jenkins, GitHub Actions. \n
Principais novidades do JUnit 5 em comparação com o JUnit 4: anotações de nova geração (@Test, @ParameterizedTest, @Nested), sistema poderoso de extensões (Extensions), suporte a expressões lambda e APIs de fluxo, além de suporte integrado para testes parametrizados e dinâmicos.
\n\nInstalação do JUnit 5
\n\nComo Java é uma linguagem compilada, a instalação é feita através de gerenciadores de dependências (Maven ou Gradle). JUnit 5 não é instalado via pip ou npm. Abaixo estão as instruções para os dois sistemas de build mais populares.
\n\nInstalação via Maven (pom.xml)
\nAdicione as seguintes dependências ao seu arquivo pom.xml. Recomenda-se usar a versão estável mais recente (no momento da escrita — 5.11.0, verifique a versão atual em MVNRepository).
<dependencies>\n <!-- Módulo principal do JUnit Jupiter (inclui API, Engine e parametrização) -->\n <dependency>\n <groupId>org.junit.jupiter</groupId>\n <artifactId>junit-jupiter</artifactId>\n <version>5.11.0</version>\n <scope>test</scope>\n </dependency>\n <!-- (Opcional) Para compatibilidade com JUnit 4 -->\n <dependency>\n <groupId>org.junit.vintage</groupId>\n <artifactId>junit-vintage-engine</artifactId>\n <version>5.11.0</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n\nInstalação via Gradle (build.gradle)
\nAdicione na seção dependencies:
dependencies {\n testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0'\n // (Opcional) Para JUnit 4\n testImplementation 'org.junit.vintage:junit-vintage-engine:5.11.0'\n}\n\ntest {\n useJUnitPlatform() // Obrigatório para habilitar JUnit 5\n}\n\nInstalação sem sistema de build (Plain Java)
\nSe você não usa Maven/Gradle, baixe os arquivos JAR do repositório oficial e adicione-os ao classpath do seu projeto. No entanto, isso é altamente desaconselhado para projetos reais.
\n\nInício rápido: primeiro teste com JUnit 5
\n\nVamos criar uma classe simples Calculator e escrever um teste para ela.
1. Classe a ser testada (Calculator.java):
\npublic class Calculator {\n public int add(int a, int b) {\n return a + b;\n }\n\n public int divide(int a, int Também na biblioteca
Integração de métricas Prometheus em aplicações Java: biblioteca simpleclient
Trabalho com XML em PHP: DOMDocument, SimpleXML e XPath
Aprendizado de Máquina em JavaScript (Node.js): bibliotecas para ML
Mongoose Paginate para JavaScript (Node.js): guia completo com exemplos
Internacionalização (i18n) em C# (.NET): guia completo