martes, 11 de junio de 2013

JUnit en Eclipse. Pruebas Unitarias en Java (ejemplo sencillo)

Documento sin título










Una prueba unitaria según Wikipedia es “una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado.”. Para algunos, este tipo de pruebas es una pérdida de tiempo o una inutilidad. Hay que decir que crear las pruebas supone un tiempo adicional al que dedicamos a programar la aplicación en sí. Debemos valorar si merece la pena o no, según las dimensiones y la complejidad de nuestro proyecto. Lo cierto es que si las hacemos, dependiendo del caso, podemos ahorrarnos mucho tiempo, ya que habremos automatizado las pruebas e instantáneamente sabremos si nuestra aplicación cumple con los resultados correctos. Mejoraremos la calidad del software, asegurándonos de que aunque hagamos cambios en nuestro código, cumpliremos con los requisitos esperados. En un futuro podremos modificar, ampliar o eliminar código y las pruebas unitarias seguirán sirviéndonos para realizar las comprobaciones pertinentes.


Para empezar, vamos a ver el ejemplo más simple posible, para que podamos centrarnos en la comprensión de lo que son las pruebas unitarias y de la herramienta para llevarlas a cabo: JUnit. El IDE que utilizaremos será Eclipse.



1. Empezaremos creando la clase que queremos probar. Tendrá el siguiente código:

public class Suma {

    private int num1;

   private int num2;

   public Suma(int n1, int n2) {
       num1 = n1;
       num2 = n2;
   }
   public int sumar() {
       int resultado = num1 + num2;
       return resultado;
   }
}

Como vemos, es una clase muy sencilla que dispone de un método que permite sumar dos números.

2. Lo siguiente es crear la clase que nos servirá para probar la clase Suma. Queremos saber si la suma se hace correctamente en tres casos: sumando dos números positivos, sumando dos números negativos y sumando un número positivo y un número negativo. El código será el siguiente:

public class SumaTest {

   @Test
   public void sumaPositivos() {
      System.out.println("Sumando dos números positivos ...");
       Suma S = new Suma(2, 3);
       assertTrue(S.sumar() == 5);
   }

   @Test
   public void sumaNegativos() {
       System.out.println("Sumando dos números negativos ...");
       Suma S = new Suma(-2, -3);
       assertTrue(S.sumar() == -5);
   }

   @Test
   public void sumaPositivoNegativo() {
       System.out.println("Sumando un número positivo y un número negativo ...");
       Suma S = new Suma(2, -3);
       assertTrue(S.sumar() == -1);
   }
} 


3. Activamos la vista “JUnit” en Eclipse. Para ello hay que pulsar en: “Window”; “Show View”; “Other...”; “Java”; “JUnit”.

4. Y ejecutamos el proyecto como test JUnit, pulsando sobre el proyecto con el botón derecho, luego pulsamos “Run as” y finalmente “JUnit Test”.
Ahora podremos ver los resultados. Si todo hay ido bien, en la vista JUnit nos aparecerá ésto: 



Si ha habido algún fallo nos aparecerá lo siguiente:


Como vemos, en el primer caso el test ha sido completado sin fallos. Sin embargo, en el segundo ejemplo (he modificado el código a conciencia para que falle) se ha encontrado un error en “sumaPositivoNegativo”.

Estamos ante un ejemplo poco práctico, por su simplicidad. Pero lo importante es comprender el concepto de pruebas unitarias y aprender a manejar JUnit dentro de Eclipse. Para obtener más información de cómo hacer los test, recomiento la lectura de la API de JUnit http://junit.sourceforge.net/javadoc/org/junit/package-summary.html .

Si tenéis alguna pregunta, podéis utilizar los comentarios.

 

Fuentes:




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO