JUnit - Marco de prueba

JUnit es un Regression Testing Frameworkutilizado por los desarrolladores para implementar pruebas unitarias en Java, y acelerar la velocidad de programación y aumentar la calidad del código. JUnit Framework se puede integrar fácilmente con cualquiera de los siguientes:

  • Eclipse
  • Ant
  • Maven

Características de JUnit Test Framework

El marco de prueba JUnit proporciona las siguientes características importantes:

  • Fixtures
  • Suites de prueba
  • Corredores de prueba
  • Clases de JUnit

Accesorios

Fixtureses un estado fijo de un conjunto de objetos que se utiliza como línea de base para ejecutar pruebas. El propósito de un dispositivo de prueba es garantizar que exista un entorno bien conocido y fijo en el que se ejecuten las pruebas para que los resultados sean repetibles. Incluye -

  • método setUp (), que se ejecuta antes de cada invocación de prueba.
  • tearDown () método, que se ejecuta después de cada método de prueba.

Veamos un ejemplo:

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 prueba

Un conjunto de pruebas agrupa algunos casos de prueba unitarios y los ejecuta juntos. En JUnit, las anotaciones @RunWith y @Suite se utilizan para ejecutar la prueba de la suite. A continuación se muestra un ejemplo que usa las clases de prueba TestJunit1 y 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());
   }
}

Corredores de prueba

El corredor de pruebas se utiliza para ejecutar los casos de prueba. Aquí hay un ejemplo que asume la clase de pruebaTestJunit ya 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());
   }
}

Clases de JUnit

Las clases de JUnit son clases importantes que se utilizan para escribir y probar JUnits. Algunas de las clases importantes son:

  • Assert - Contiene un conjunto de métodos de aserción.

  • TestCase - Contiene un caso de prueba que define el dispositivo para ejecutar múltiples pruebas.

  • TestResult - Contiene métodos para recopilar los resultados de la ejecución de un caso de prueba.