"Código sem testes é legado": por que você deve começar hoje mesmo
\n\nImagine: você escreveu um aplicativo em Java. Ele funciona. Mas você tem medo de mudar algo, porque um movimento errado e tudo desmorona. Familiar? Bem-vindo ao mundo onde testes Java não são um capricho, mas uma habilidade de sobrevivência.
\n\nMuitos desenvolvedores iniciantes adiam os testes "para depois". Tipo, primeiro aprendo a escrever código, depois eu vejo. Mas a verdade é que testes unitários Java não são uma carga extra, mas sim seu cabo de segurança. Eles fazem você escrever um código mais limpo, modular e compreensível. E sim, os empregadores valorizam muito os desenvolvedores que sabem cobrir o código com testes.
\n\nNeste artigo, vamos abordar por onde começar os testes Java para iniciantes. Você conhecerá as principais ferramentas — JUnit e Mockito, escreverá seus primeiros testes e entenderá como não cair no "testar por testar". Vamos lá!
\n\nPasso 1: Configuração do ambiente — sua primeira bancada de testes
\n\nAntes de escrever testes, é preciso preparar o ambiente. A boa notícia: para automação de testes Java, você não precisa de nada extraordinário. Tudo o que você já tem — JDK e IDE (IntelliJ IDEA ou Eclipse).
\n\nMaven ou Gradle — escolhendo o gerenciador de build
\n\nProjetos Java modernos raramente dispensam um sistema de build. Usaremos Maven — ele é o padrão de facto para a maioria dos projetos. Aqui está o pom.xml mínimo com dependências para testes:
<dependencies>\n <!-- JUnit 5 — framework principal para testes -->\n <dependency>\n <groupId>org.junit.jupiter</groupId>\n <artifactId>junit-jupiter-api</artifactId>\n <version>5.10.0</version>\n <scope>test</scope>\n </dependency>\n \n <!-- Mockito para criar objetos mock -->\n <dependency>\n <groupId>org.mockito</groupId>\n <artifactId>mockito-core</artifactId>\n <version>5.6.0</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n\nObserve o <scope>test</scope> — essas bibliotecas não irão para a compilação final do aplicativo, são necessárias apenas para executar os testes.
Passo 2: JUnit — seu primeiro teste real
\n\nJUnit é a base sobre a qual se constroem todos os testes Java. Com ele, você escreve testes unitários: verifica o funcionamento de um método ou classe isoladamente.
\n\nEscrevendo o primeiro teste
\n\nSuponha que temos uma calculadora simples:
\n\npublic class Calculator {\n public int add(int a, int b) {\n return a + b;\n }\n \n public int divide(int a, int b) {\n if (b == 0) {\n throw new IllegalArgumentException("Não é possível dividir por zero!");\n }\n return a / b;\n }\n}\n\nAgora vamos escrever um teste para ela. Crie uma classe na pasta src/test/java:
import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\nclass CalculatorTest {\n \n private final Calculator calculator = new Calculator();\n \n @Test\n void testAdd() {\n // Arrange (preparação)\n int a = 2;\n int b = 3;\n \n // Act (ação)\n int result = calculator.add(a, b);\n \n // Assert (verificação)\n assertEquals(5, result, "2 + 3 deve ser igual a 5");\n }\n \n @Test\n void testDivideByZero() {\n // Verifica se o método lança exceção\n assertThrows(IllegalArgumentException.class, \n () -> calculator.divide(10, 0));\n }\n}\n\nExecute o teste — a barra verde na IDE dirá que tudo funciona. Parabéns, você acabou de dar o primeiro passo no unit testing Java.