JUnit

RECU-0248 (Recurso Ficha Técnica)

Descripción

JUnit se trata de un Framework Open Source para la automatización de las pruebas (tanto unitarias, como de integración) en los proyectos Software. El framework provee al usuario de herramientas, clases y métodos que le facilitan la tarea de realizar pruebas en su sistema y así asegurar su consistencia y funcionalidad.

En primer lugar e importante es que el nombre de la clase de Test debe tener la siguiente estructura: "Test"

Métodos

A grandes rasgos, una clase de Test realizada para ser tratada por JUnit tiene una estructura con 4 tipos de métodos:

  • Método setUp: Asignamos valores iniciales a variables antes de la ejecución de cada test. Si sólo queremos que se inicialicen al principio una vez, el método se debe llamar "setUpClass"
  • Método tearDown: Es llamado después de cada test y puede servir para liberar recursos o similar. Igual que antes, si queremos que sólo se llame al final de la ejecución de todos los test, se debe llamar "tearDownClass"
  • Métodos Test: Contienen las pruebas concretas que vamos a realizar.
  • Métodos auxiliares.

Anotaciones

Se llama anotaciones a caracteres especiales, que se han incluido en la versión 4, para intentar simplificar más la labor del programador. Se trata de palabras clave que se colocan delante de los métodos definidos antes y que indican a las librerías JUnit instrucciones concretas.

A continuación pasamos a ver las más relevantes:

  • @RunWith: Se le asigna una clase a la que JUnit invocará en lugar del ejecutor por defecto de JUnit
  • @Before: Indicamos que el siguiente método se debe ejecutar antes de cada test (precede al método setUp). Si tiene que preceder al método setUpClass, la notación será "@BeforeClass"
  • @After: Indicamos que el siguiente método se debe ejecutar después de cada test (precede al método tearDown). Si tiene que preceder al método tearDownClass, la notación será "@AfterClass"
  • @Test: Indicamos a Junit que se trata de un método de Test. En versiones anteriores de JUnit los métodos tenían que tener un nombre con la siguiente estructura: "Test". Con esta notación colocada delante de los métodos podemos elegir el nombre libremente.

Funciones de aceptación/rechazo

Una vez hemos creado las condiciones para probar que una funcionalidad concreta funciona es necesario que un validador nos diga si estamos obteniendo el resultado esperado o no. Para esta labor se definen una lista de funciones (incluidas en la clase Assert) que se pueden ver detalladas en el javadoc de JUnit. Se detallan las más comunes:

  • sertArrayEquals: Recibe como parámetro dos arrays y comprueba si son iguales. Devuelve assertionError si no se produce el resultado esperado
  • sertEquals: Realiza la comprobación entre dos valores de tipo numérico. Devuelve assertionError si no se produce el resultado esperado
  • sertTrue: Comprueba si una condición se cumple. Devuelve assertionError si no se produce el resultado esperado
  • il: devuelve una alerta informando del fallo en el test

Ejemplo de uso

import org.junit.AfterClass;   
import org.junit.Assert;  
import org.junit.BeforeClass;  
import org.junit.Test;  
 
public class pruebaTest {  
 
    @BeforeClass 
    public static void setUpClass() throws Exception {  
    //Inicialización general de variables, escritura del log...  
    }  
      
    @AfterClass 
    public static void tearDownClass() throws Exception {  
    //Liberación de recursos, escritura en el log...  
    }  
      
    @Before 
    public void setUp() {  
    //Inicialización de variables antes de cada Test  
    }  
      
    @After 
    public void tearDown() {  
    //Tareas a realizar después de cada test  
    }  
      
    @Test 
    public void comprobarAccion() {  
    //Creamos el entorno necesario para la prueba  
    //Usamos alguna de las funciones arriba descritas   
    //para realizar la comprobación  
    }  
      
    public void funcionAuxiliar() {  
    //tareas auxiliares  
    }  
      
}

Usos y recomendaciones conocidas

  • Reconocido mundialmente como librería para las pruebas de desarrollo WEB

Requisitos e incompatibilidades

Junit 4.5.jar

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0344 Librerías para aplicaciones Java Libro de pautas Directriz Recomendada