JUnit - Estrutura de Teste

O JUnit é uma estrutura de teste de regressão usada pelos desenvolvedores para implementar o teste de unidade em Java, acelerar a velocidade de programação e aumentar a qualidade do código. O JUnit Framework pode ser facilmente integrado a qualquer um dos seguintes -

  • Eclipse
  • Formiga
  • Maven

Recursos do JUnit Test Framework

A estrutura de teste do JUnit fornece os seguintes recursos importantes -

  • Luminárias
  • Conjuntos de teste
  • Executores de teste
  • Classes JUnit

Luminárias

Acessórios é um estado fixo de um conjunto de objetos usado como linha de base para a execução de testes. O objetivo de um equipamento de teste é garantir que exista um ambiente conhecido e fixo no qual os testes sejam executados para que os resultados sejam repetíveis. Inclui -

  • método setUp (), que é executado antes de cada chamada de teste.
  • O método tearDown (), que é executado após cada método de teste.

Vamos verificar um exemplo -

import junit.framework.*;

public class JavaTest extends TestCase {
   protected int value1, value2;
   
   // assigning the values
   protected void setUp(){
      value1 = 3;
      value2 = 3;
   }

   // test method to add two values
   public void testAdd(){
      double result = value1 + value2;
      assertTrue(result == 6);
   }
}

Suítes de teste

Um conjunto de testes agrupa alguns casos de teste de unidade e os executa juntos. No JUnit, as anotações @RunWith e @Suite são usadas para executar o teste do conjunto. Dado a seguir, é apresentado um exemplo que usa as classes de teste TestJunit1 e TestJunit2.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

//JUnit Suite Test
@RunWith(Suite.class)

@Suite.SuiteClasses({ 
   TestJunit1.class ,TestJunit2.class
})

public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit1 {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
   
   @Test
   public void testPrintMessage() {	
      System.out.println("Inside testPrintMessage()");    
      assertEquals(message, messageUtil.printMessage());     
   }
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit2 {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
 
   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

Executores de teste

O executor de teste é usado para executar os casos de teste. Aqui está um exemplo que assume que a classe de teste TestJunit já existe.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

Classes JUnit

As classes JUnit são classes importantes, usadas para escrever e testar JUnits. Algumas das classes importantes são -

  • Afirmar - Contém um conjunto de métodos de afirmação.

  • TestCase - Contém um caso de teste que define o equipamento para executar vários testes.

  • TestResult - Contém métodos para coletar os resultados da execução de um caso de teste.