Olá!
Como prometido para meus alunos, neste post vou mostrar um exemplo simples de como fazer teste unitário utilizando o junit. O JUnit é um framework criado por Erich Gamma e Kent Beck com suporte à criação de testes automatizados na linguagem de programação Java.
Não vou entrar muito em detalhes sobre o funcionamento do framework. Recomendo a leitura de:
Teste unitário com JUnit from Edgard Davidson on Vimeo.
Vídeo mostrando como criar uma Suite de Teste
Suite de Teste com JUnit from Edgard Davidson on Vimeo.
Código fonte da classe TipoTrianguloTest
package triangulo;
import junit.framework.TestCase;
/**
*
* @author Edgard Davidson
*/
public class TipoTrianguloTest extends TestCase {
public TipoTrianguloTest(String testName) {
super(testName);
}
/**
* Test of eTriangulo method, of class TipoTriangulo.
*/
public void testETriangulo() {
TipoTriangulo instance = new TipoTriangulo();
assertTrue(instance.eTriangulo(2, 2, 2));
assertTrue(instance.eTriangulo(2, 3, 2));
assertTrue(instance.eTriangulo(4, 3, 5));
assertFalse(instance.eTriangulo(4, 3, -5));
}
/**
* Test of possuiValoresNulosNeg method, of class TipoTriangulo.
*/
public void testPossuiValoresNulosNeg() {
TipoTriangulo instance = new TipoTriangulo();
assertFalse(instance.possuiValoresNulosNeg(2, 2, 2));
assertFalse(instance.possuiValoresNulosNeg(2, 3, 2));
assertFalse(instance.possuiValoresNulosNeg(4, 3, 5));
assertTrue(instance.possuiValoresNulosNeg(2, 2, -2));
assertTrue(instance.possuiValoresNulosNeg(2, -3, 2));
assertTrue(instance.possuiValoresNulosNeg(-4, 3, 5));
}
/**
* Test of obterTextoTipoTriangulo method, of class TipoTriangulo.
*/
public void testObterTextoTipoTriangulo() {
TipoTriangulo instance = new TipoTriangulo();
instance.atribuirLados(2, 2, 2);
assertEquals("O triângulo é equilátero.", instance.obterTextoTipoTriangulo());
instance.atribuirLados(2, 3, 2);
assertEquals("O triângulo é isósceles.", instance.obterTextoTipoTriangulo());
instance.atribuirLados(4, 3, 5);
assertEquals("O triângulo é escaleno.", instance.obterTextoTipoTriangulo());
instance.atribuirLados(4, 3, -5);
assertEquals("Os valores não formam um triângulo.", instance.obterTextoTipoTriangulo());
instance.atribuirLados(4, 3, 50);
assertEquals("Os valores não formam um triângulo.", instance.obterTextoTipoTriangulo());
}
/**
* Test of obterTipoTriangulo method, of class TipoTriangulo.
*/
public void testObterTipoTriangulo() {
TipoTriangulo instance = new TipoTriangulo();
instance.atribuirLados(2, 2, 2);
assertEquals(TipoTriangulo.EQUILATERO, instance.obterTipoTriangulo());
instance.atribuirLados(2, 3, 2);
assertEquals(TipoTriangulo.ISOSCELES, instance.obterTipoTriangulo());
instance.atribuirLados(4, 3, 5);
assertEquals(TipoTriangulo.ESCALENO, instance.obterTipoTriangulo());
instance.atribuirLados(4, 3, -5);
assertEquals(TipoTriangulo.INEXISTENTE, instance.obterTipoTriangulo());
instance.atribuirLados(4, 3, 50);
assertEquals(TipoTriangulo.INEXISTENTE, instance.obterTipoTriangulo());
}
}
Código fonte da classe suite
package suite;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
*
* @author Edgard Davidson
*/
public class Suite extends TestCase {
public Suite(String testName) {
super(testName);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(calculadora.CalculadoraTest.class);
suite.addTestSuite(triangulo.TipoTrianguloTest.class);
return suite;
}
}
O código fonte inteiro do projeto está disponível aqui.
Profissional especialista em engenharia de software e desenvol- vimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA, mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software, Graduado em Sistemas de Informação. Sou sócio da MÉRITA - ENGENHARIA DE SERVIÇOS E SISTEMAS e criei este blog dedicado a assuntos como: desenvolvimento e engenharia de software, opiniões pessoais sobre assuntos pertinentes. Os posts deste blog são escritos sem muito rigor científicos e expressam opiniões exclusivamente minhas
[Novo Post] Teste Unitário com JUnit – http://edgarddavidson.com/?p=537
via Twitoaster
[...] Sobre Mim « Teste Unitário com JUnit [...]
[...] Para saber mais sobre teste unitário com JUnit, veja o meu post anterior e assista os vídeos de Teste Unitário com JUnit.. [...]