Test con JUnit

1
48088

JUnit: Pruebas unitarias en Java

Cuando realizados desarrollos profesionales, debemos tener en cuenta que no
solo hay que ejecutar el proyecto… hay que ejecutarlo bien.

Un proyecto no esta terminado hasta que esta en producción, tiene su
documentación y dispone de las garantias adecuadas de que va a funcionar en
todos los escenarios posibles.

Además, normalmente, se desarrolla en un entorno, se empaqueta y
posteriormente se entrega a un equipo de calidad para que lo pruebe y lo pase a
otro (pre-producción y producción).

Todo esto hay que tenerlo en cuenta  a la hora de dimensionar, diseñar
y ejecutar un proyecto.

Del mismo modo, tambien debemos tener en cuenta que no lo podemos hacer de un
modo distinto en cada proyecto. Hemos de utilizar mecanismos estandares y
ampliables simpre que se pueda.

Otro punto que cabe recordar (y que muchas veces se olvida) es que la
tecnología es y debe ser un medio para que nuestros clientes consigan objetivos
empresariales y el puritanismo tecnológico a nuestro cliente normalmente le dá
igual ….  tenemos que alcanzar un equilibrio entre calidad y resultados
….

Digo esto porque seguro que alguien descubre como hacer test unitarios
y se le ocurre que a partir de ahora todo el sistema tenga test unitarios
(economicamente no es muy viable …. tenemos que usar el sentido común)

 

Lo primero que vamos a hacer es decargarnoslo, y descomprimirlo.

Luego tenemos que asegurarnos de poner en la variable de entorno classpath junit.jar

Ahora ejecutamos el comando de prueva

java junit.swingui.TestRunner junit.samples.AllTests

Y comprobamos el resultado:

Si no os a funcionado ….. seguro que es un problema de classpath ….

Bueno, ya esta configurado el entorno …. ahora vamos a centrarnos en los
principios de los Test Unitarios y como aplicarlo a nuestros programas.

Hacemos un prográma mínimo para que funcionen nuestro propios tests y vemos
los requerimientos básicos …

import junit.framework.*;

public class pruebas extends TestCase
{
   pruebas(String tituloTest)
   {
        super(tituloTest);
   }

    protected void runTest()
    {
        int i = 0;
        this.assertTrue("Valor Igual a 3",i==3);
    }

    public static Test suite()
    {
        TestSuite suite= new TestSuite("Pruebas de clase pruebas");
        suite.addTest(new pruebas("Clase principal"));
        return suite;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         // nuestro programa hace lo que deseemos
    }
}

    

 

Para que una clase sea invocable desde JUnit, tenemos que hacer de derive de junit.framework.TestCase

Nuestro test, debe redefinir el método protected void runTest()

Dentro de este método … haremos llamadas a los métodos de verificación
com assertTrue(«Valor Igual a
3»,i==3);

Para que podamos invocar desde una herramienta gráfica los test, debemos
redefinir el método public static Test suite()

Y dentro de este método, añadiremos todos los test que deseemos addTest(new
pruebas(«Clase principal»));

Bueno … compilamos y vemos que pasa …

 

Vemos la otra lengueta …

Bueno … seguro que el ejemplo no os a parecido demasiado claro … asi que
vamos a hacer unos pocos más …

Supongamos que una de nuestras clases se encarga de leer los parámetros de
un fichero … y queremos asegurarnos que cuando pasemos entre entornos ese
fichero esté

import junit.framework.*;
import java.io.*;

public class leerPropiedades  extends TestCase
{
    String nombreFichero="parametros.ini";

     public leerPropiedades(String nombreTest)
    {
        super(nombreTest);
    }

    protected void runTest()
    {
        try
        {
            File fichero = new File(nombreFichero);
            this.assertTrue("Podemos Leer",fichero.canRead());
        }
        catch(Exception e)
        {
            this.fail("Fallo al identificar Fichero " + nombreFichero);
        }
   }

    public static Test suite()
    {
        TestSuite suite= new TestSuite("Manipulación de propiedades");
        suite.addTest(new leerPropiedades("Existe el Fichero"));
        return suite;
    }

    public static void main(String[] args) {
    }
}

    

El resultado si el fichero no existe o no tenemos privilegios sería

Si el fichero existe … la salida sería

 

Lo vamos a dejar de momento aquí .. en próximas entregas expondremos técnicas más avanzadas ….

Sobre el
Autor ..

1 COMENTARIO

  1. Muy Bueno, en la Universidad Nacional del Nordeste(UNNE, Corrientes Argentina) , en la Materia Programacion Orientada a Objetos estamos dando a conocer el tema. Mi Compañero y yo estamos trabajando en Junit hasta el momento esta muy bueno el tema y tanto profesores como alumnos se mostraronm interesados. Nosotros somos Ayudante Alumno de la Catedra. Desde ya Gracias por tu aporte

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad