Empezando con JUnit 4

Aunque la versión 4 del famoso framework de pruebas se liberó hace ya 4 años, si nos fijamos en el número de descargas desde sourceforge (1.172.776), vemos la tendencia de seguir utilizando la ultima actualización de la versión 3.  Pero, porqué no pasarnos a la versión 4? Veamos qué novedades y cambios nos ofrece.

Para instalarlo basta con descargar el .jar correspondiente y añadirlo como librería externa a nuestro proyecto.

Anotaciones

Se sustituyen los métodos específicos del framework por un sistema de anotaciones, con el que tendremos unas clases más ordenadas, además de poder nombrar a los métodos según necesitemos, ya no es necesario que comiencen con el prefijo test. Existen las siguientes anotaciones:

  • @BeforeClass:
    • Sólo puede haber un método con este marcador
    • Es invocado una vez al principio de todas los test
    • Recomendado para inicializar atributos
  • @AfterClass:
    • Sólo puede haber un método con este marcador
    • Se invoca al finalizar todas los test
  • @Before:
    • Se ejecuta antes de de cada test
  • @After:
    • Se ejecuta después de cada test
  • @Ignore:
    • Los métodos marcados con esta anotación no serán ejecutados
    • Puede contener un texto que si será mostrado al pasar por el test con dicha anotación
  • @Test:
    • Representa un test que se debe ejecutar
    • Puede tener dos tipos de modificadores
Además, la anotación Test acepta dos parámetros:
  • @Test (timeout=X)
    • el test será válido si se ejecuta en un tiempo máximo de X milisegundos
  • @Test (expected = java.util.NoSuchElementException.class)
    • el test será válido si se lanza una determinada excepción

Gracias a las anotaciones, los métodos de prueba ya no tendrás que comenzar con el prefijo test, y estos tampoco tendrán que ser subclases de junit.framework.TestCase, por lo que podremos hacer las herencias que estimemos oportunas.

Métodos

En esta nueva versión se han añadido numerosos métodos, siendo algunos de los más comunes (de la clase Assert):

assertNotNull: devuelve assertionError si el objeto devuelto es nulo

assertEquals: devuelve assertionError los objetos comparados no son iguales

assertTrue: devuelve assertionError si la condición se evalúa como false

Se pueden comprobar todos en el javadoc de JUnit. En especial al nuevo método assertThat (incluido a partir de JUnit 4.4), con la que podremos especificar una determinada acción en función de una condición

  • assertThat(something, contains(“World”));
  • assertThat(something, NULL);
Además, podremos ejecutar los testCases programados en JUnit4 bajo un testRuner programado en JUnit3 gracias al uso de JUnitAdapter
	public static junit.framework.Test suite() {
	   return new JUnit4TestAdapter(SimpleMathTest.class);
	}

Comentarios generales

  • JUnit4 corre sobre Java5, de ahí que pueda utilizar anotaciones
  • No es necesario heredar de la clase TestCase
  • Posibilidad de desactivar determinados casos de prueba

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s