Testes unitários em Java com JUnit
Este artigo mostra como criar testes unitários facilmente com o framework JUnit em Java.
Parte 2: Colocando a mão na massa - classe exemplo, classe de teste
Agora vamos para a parte interessante. Criei uma classe aqui que não faz nada de legal, é a classe Matematica. Ela não faz nada de muito complicado, recebe dois números inteiros em seu construtor e possui métodos para somar, subtrair, multiplicar e dividir os números.
Não há nada de misterioso em sua implementação, veja o código:
Não me preocupei com DivisionByZero, pois essa classe é apenas para fins didáticos. Como pode perceber, não tem nada de interessante nessa classe. Ela recebe dois números, e os métodos verificam se os operadores cumprem com o que prometem. :)
Agora vamos ver o código, depois as explicações:
Vamos por partes:
A classe MatematicaTest herda de junit.framework.TestCase, isso é obrigatório. A propriedade "math" é a instância da classe Matematica, criei-a para não ter que criar uma nova instância em todos os métodos de teste.
No método main, invocamos o programa TestRunner, que é um programinha de linha de comando. Fiz a invocação pelo método main, pois pela linha de comando ele não funcionou comigo. :(
Em todos os métodos "testX" temos uma chamada ao método "assertTrue" da classe junit.framework.Assert, ele é útil para avaliar se uma condição é verdadeira.
Pode-se especificar uma mensagem de erro que será exibida caso a condição seja falsa. Esta mensagem pode ser especificada no primeiro parâmetro do método, pois ele é sobrecarregado.
Depois da edição do programa acima, basta compilar e executar:
javac Matematica.java MatematicaTest.java
$ java MatematicaTest
....
Time: 0,002
OK (4 tests)
Não há nada de misterioso em sua implementação, veja o código:
Não me preocupei com DivisionByZero, pois essa classe é apenas para fins didáticos. Como pode perceber, não tem nada de interessante nessa classe. Ela recebe dois números, e os métodos verificam se os operadores cumprem com o que prometem. :)
Testando a classe Matematica
Agora vamos testar a classe Matematica. Antes de ver código, vamos a algumas regrinhas básicas:- Todas as classes de teste devem herdar de junit.framework.TestCase;
- Todos os métodos a serem testados devem ter o prefixo "test".
Agora vamos ver o código, depois as explicações:
Vamos por partes:
A classe MatematicaTest herda de junit.framework.TestCase, isso é obrigatório. A propriedade "math" é a instância da classe Matematica, criei-a para não ter que criar uma nova instância em todos os métodos de teste.
No método main, invocamos o programa TestRunner, que é um programinha de linha de comando. Fiz a invocação pelo método main, pois pela linha de comando ele não funcionou comigo. :(
Em todos os métodos "testX" temos uma chamada ao método "assertTrue" da classe junit.framework.Assert, ele é útil para avaliar se uma condição é verdadeira.
Pode-se especificar uma mensagem de erro que será exibida caso a condição seja falsa. Esta mensagem pode ser especificada no primeiro parâmetro do método, pois ele é sobrecarregado.
Depois da edição do programa acima, basta compilar e executar:
javac Matematica.java MatematicaTest.java
$ java MatematicaTest
....
Time: 0,002
OK (4 tests)
Simples e elegante,
Parabéns