Pruebas Unitarias

Los tests unitarios son una forma de probar el correcto funcionamiento de un módulo o una parte del sistema.

Con el fin de asegurar el correcto funcionamiento de todos los módulos por separado y evitar así errores futuros en el momento de la integración de todas sus partes.

La idea es escribir casos de prueba para cada función no trivial o método en el módulo, de forma que cada caso sea independiente del resto.

Presenter Notes

Pruebas Unitarias en Java con JUnit

JUnit es ya de por sí un framework que facilita en demasía el desarrollo de prueba unitarias, pero ahora la versión 4 simplifica más el desarrollo de éstas por medio de la explotación de las anotaciones otorgadas por Java 5, eliminando el desarrollo de pruebas basado en subclassing, reflection y convenciones de nombrado.

La intención de Kent Beck (creador de JUnit junto con Erich Gamma) con esta nueva versión, es animar a más desarrolladores a escribir más pruebas unitarias por medio de la simplificación de JUnit.

Métodos de prueba

Con JUnit 4 para señalar un método de prueba lo anotaremos con @Test. No será necesario heredar de la clase TestCase para hacer uso de los métodos assertXXX() y podremos hacer uso de ellos mediante la utilización de importaciones estáticas, característica proporcionada por Java 5.

Presenter Notes

Ejemplo1

 1 public class PruebaAlgunaClase {
 2   @Test
 3   public void pruebaFuncionX() {
 4     assertEquals(
 5         "Error no corresponde al valor esperado",
 6         "valor Esperado",
 7         AlgunaClase.funcionX()
 8     );
 9   }
10 }

Presenter Notes

Plantilla de ejemplo.

 1 /**
 2  * Template de un TestCase común para JUnit
 3  * @author iuga
 4  */
 5 public class miPruebaJnit {
 6
 7     private AgunObjeto ob;
 8
 9     public miPruebaJnit() {
10     }
11 }

Presenter Notes

Metodos basicos

Metodos previos a la ejecución:

 1 public class miPruebaJnit {
 2     @BeforeClass
 3     public static void setUpClass() throws Exception {
 4         // Primer Método a Ejecutar cuando se
 5         // lancen los Test
 6     }
 7
 8     @Before
 9     public void setUp() {
10         // Clase q se va a utilizar para setear los datos a
11         // todos los objetos que necesitemos, es el inicializador
12         // Tal cual el initComponents del NetBeans
13     }
14 }

Presenter Notes

Metodos basicos

Metodos posterior a la ejecución:

 1 public class miPruebaJnit {
 2     @AfterClass
 3     public static void tearDownClass() throws Exception {
 4         // Método que se ejecuta cuando se terminan los test
 5         // Es útil para cerrar bases de datos, archivos,
 6         // Exploradores, Streams, etc.
 7     }
 8
 9     @After
10     public void tearDown() {
11         // Último método que se ejecuta cuando se terminan los test
12         // Es útil para cerrar bases de datos, archivos,
13         // Exploradores, Streams, etc.
14      }
15 }

Presenter Notes

Metodos basicos

Metodos Test:

 1 public class miPruebaJnit {
 2     /**
 3     * Prueba sobre el metodo guardar, de la clase miPruebaJnit.
 4     * Todos los metodos que tengan la anotacion @Test seran
 5     * ejecutados por JUnit no importa si no se llaman.
 6     */
 7     @Test
 8     public void testGuardar() {
 9         int id = 0;
10
11         // Pruebo los métodos que necesito
12
13         if(result==0) {
14             // Lanzo fail() cuando el Test falló a lo que yo
15             // esperaba, por ejemplo el dato de un algoritmo
16             // que es un resultado erroneo
17             fail("The test case is a prototype.");
18         }
19     }
20 }

Presenter Notes

Creando JUnit desde netbeans

Creamos el proyecto Suma

creando_proyecto_suma

Presenter Notes

Creamos un caso de prueba para alguna clase

creando_creando_junit_test

Presenter Notes