Quitándole el tedio a las pruebas unitarias en Java

tedio-de-pruebas-unitarias-java

Escribir pruebas unitarias en Java puede resultar muy tedioso y repetitivo si no se cuenta con la preparación adecuada del entorno de desarrollo (IDE). En este breve artículo se dan algunos ejemplos de esta situación y se presentan herramientas que ayudan a hacer de las pruebas unitarias en Java una experiencia más agradable.

El tedio de la repetición

Hay muchas tareas repetitivas que hay que realizar antes de poder comenzar a desarrollar el contenido esencial de la prueba. Por ejemplo:

  • Crear una clase con el sufijo “Test”.
  • Colocarla en el paquete correspondiente a la clase sujeto de la prueba.
  • Colocarla dentro del directorio de pruebas (por ej. “src/test/java“)
  • Agregar las anotaciones correspondientes al framework utilizado (por ej. “@Test”, “@BeforeMethod”, “@DataProvider”)

¡Y eso sólo es el principio! Una vez que al fin se ha podido comenzar a trabajar en el contenido esencial de la prueba, siempre llega el momento en el que se interrumpe la concentración porque es necesario realizar otras tareas repetitivas. Por ejemplo:

  • Navegar entre la prueba y la clase sujeto de la prueba (realmente tedioso si se tienen muchas otras clases abiertas en el editor).
  • Importar el método “assertXXX” que se necesita para la aserción actual.
  • Acordarse del nombre de la clase que contiene el método para crear un mock, verificar una interacción, hacer una aserción, etc. (por ej. Mockito.xxx Assert.xxx, MatcherAssert.xxx, Matchers.xxx)

Una pizca de configuración

Para configurar el IDE de tal manera que se pueda trabajar de manera efectiva creando pruebas unitarias o incluso haciendo desarrollo guiado por pruebas (TDD) se necesitan unos cuantos minutos:

Instalar MoreUnit y configurarlo

MoreUnit es un plugin para eclipse que asiste en el desarrollo de pruebas unitarias. Sus principales funciones son:

  • Navegación entre la prueba y la clase o método sujeto de la prueba. Si la prueba no existe, te asiste en la creación de la prueba. (Ctrl + J)
  • Correr la prueba de la clase que se está editando. (Ctrl + R)
  • Decorar las clases que tienen pruebas (Se señala con un ícono verde en la clase en el explorador de proyectos) (screenshot 1)

Se puede instalar desde eclipse marketplace o desde su sitio web.

En la configuración de MoreUnit (screenshot 2) se puede especificar en qué directorio se encuentran las pruebas, qué framework se utiliza para realizar las pruebas (JUnit 3.8, JUnit 4 o TestNG), así como una convención para los nombres de las pruebas (FooTest, FooSpec, etc.).

Screenshots configuración de moreunit

Screenshots moreunit

Agregar las clases más usadas a la lista de favoritos (eclipse)

Para evitar tener que estar escribiendo e importando los métodos que más se utilizan al trabajar con pruebas unitarias, lo mejor es agregarlos a la lista de favoritos de eclipse. De esta manera esos métodos serán siempre considerados en la lista de sugerencias o “autocomplete” del editor de java.  Aquí está una lista de los favoritos que recomiendo agregar:

Crear “snippets” o “templates” con el código que más se utiliza (eclipse)

Identifica qué pedazos de código o “snippets” utilizas de manera recurrente y agrégalos a la configuración de tu IDE ya sea como un snippet o como un template. (El template es más útil ya que puede ser activado escribiendo el nombre del template y presionando Ctrl + Space). Es muy buena idea compartir los “snippets” o “templates” que más utilices como un Gist en GitHub para que otros puedan utilizarlos también.

En fin

Vale la pena dedicar un poco de tiempo a conocer y configurar el IDE de manera que se puedan automatizar tareas recurrentes y poder concentrarse en escribir pruebas unitarias de calidad.

6 pensamientos en “Quitándole el tedio a las pruebas unitarias en Java

  1. Miguel Salazar dice:

    Una mina de oro para mi curso. Gracias!

  2. Muy buenos consejos,

    Es fantástico encontrar un artículo que ayude a reducir tareas repetitivas evitando a la vez el copia y pega.

    No conocia MoreUnit, sin embargo, con lo que comentas me parece muy interesante.

    Un abrazo josketres

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

A %d blogueros les gusta esto: