Estás en:

informaciónDESARROLLADO POR:
icono_twiter icono_linkedin icono_linkedin icono_xing

Creador y propietario de AdictosAlTrabajo.com, Director General de Autentia S.L., Ingeniero Técnico de Telecomunicaciones y Executive MBA por el Instituto de Empresa 2007. Twitter: @rcanalesmora

Autor del Libro: Informática profesional, las reglas no escritas para triunfar en la empresa

Puedes consultar mi CV y alguna de mis primeras aplicaciones (de los 90) aquí

Fecha de publicación del tutorial: 2003-06-21
Tutorial visitado 26.686 veces26.686
Descargar el tutorial en PDF


Regístrate para votar
Share |

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 ..

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Comentarios