IronWoods.es

Desarrollo web

Blog / Java / Suites de pruebas JUnit

Los test suites o conjuntos de pruebas nos permiten ejecutar simultáneamente todas las pruebas implementadas para conjuntos de clases.

Creando conjuntos de pruebas

Si hemos implementado las pruebas clase a clase, como describo en la entrada: preparación para realizar pruebas con JUnit, necesitamos crear los conjuntos de pruebas para ejecutarlas todas juntas en lugar de hacerlo para cada clase.

Para crear un conjunto de pruebas podemos seleccionar el paquete con el ratón y seguir el mismo procedimiento usado para crear una clase con pruebas (descrito en la entrada citada). Esto crea / actualiza las clases con los test para todas las clases / métodos no cubiertos por pruebas con anterioridad y crea una clase, nombrada a partir del paquete, que permite ejecutar el conjunto de pruebas.

De haber paquetes en el interior del seleccionado, también se crean las pruebas para sus clases y subconjuntos de pruebas dentro de esos paquetes que serán llamados desde el conjunto de pruebas del paquete principal.

Ejemplo de como crear un conjunto de pruebas

Tengo un proyecto, llamado "miapp", con un paquete "helpers" y dentro las clases "StringUtils", "CastUtils" y el paquete "foo" que a su vez tiene las clases "Foo" y "Baz". Estructura:

miapp.helpers   |   |- miapp.helpers.foo   |   |- Baz.java   |   |- Foo.java   |   |- CastUtils.java   |- StringUtils.java


Previamente tengo pruebas escritas para todas las clases, con sus métodos de "foo", es decir que en "Test Packages" tengo las clases: "miapp.helpers.foo.BazTest" y "miapp.helpers.foo.FooTest". Voy a crear un conjunto de pruebas para ejecutar las pruebas de todas las clases, de los paquetes "miapp.helpers" y "miapp.helpers.foo".


Procedimiento

1. Seleccionar el paquete "helpers" con el ratón.

2. Clic derecho y seleccionar "Tools" > "Create/Update Tests".

3. Se abre la ventana de configuración "Create/Update Tests" donde debemos:

  • Tener "JUnit" seleccionado como framework
  • Desmarcar la opción "Integration Tests"
  • Marcar todas las opciones de "Code Generation"
  • Omitir el resto de las opciones

Resultados

En "Test Packages" tendremos:

miapp.helpers   |   |- miapp.helpers.foo   |   |- Baz.java   |   |- Foo.java   |   |- FooSuite.java   |   |- CastUtils.java   |- HelpersSuite.java   |- StringUtils.java


Ahora debemos implementar los test para las clases que antes no estaban cubiertas, es decir las pruebas en "miapp.helpers.CastUtilsTest" y "miapp.helpers.StringUtilsTest".

Al final podremos ejecutar todas las pruebas del paquete "miapp.helpers.foo" ejecutando la clase "FooSuite" o todas las pruebas de los paquete "miapp.helpers" y "miapp.helpers.foo" ejecutando la clase "HelpersSuite".


06-07-2018