JUnit - Estrutura de Teste

JUnit é um Regression Testing Frameworkusado por desenvolvedores para implementar testes de unidade em Java e acelerar a velocidade de programação e aumentar a qualidade do código. O JUnit Framework pode ser facilmente integrado com qualquer um dos seguintes -

  • Eclipse
  • Ant
  • Maven

Recursos do JUnit Test Framework

A estrutura de teste JUnit fornece os seguintes recursos importantes -

  • Fixtures
  • Suítes de teste
  • Corredores de teste
  • Classes JUnit

Luminárias

Fixturesé um estado fixo de um conjunto de objetos usados ​​como linha de base para a execução de testes. O propósito de um dispositivo de teste é garantir que haja um ambiente bem conhecido e fixo no qual os testes são executados para que os resultados sejam repetidos. Inclui -

  • método setUp (), que é executado antes de cada invocação de teste.
  • 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);
   }
}

Suites 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. Abaixo está 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 a classe de testeTestJunit 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 -

  • Assert - Contém um conjunto de métodos de declaração.

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

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