JUnit (Ensayo)
Diego Vertiz Alexis
5IM7
JUnit
Introducción
Para garantizar el buen funcionamiento de un software las pruebas son esenciales, tienen un papel muy importante ya que por medio de ellas se verifica y se valida si se cumple con lo requerido. Para hacer pruebas se requiere de un proceso muy largo, sin embargo hoy en dia existen herramientas adicionales que nos ayudan con este proceso y una de ellas es JUnit
Desarrollo
JUnit es un Framework para Java que permite la realización de la ejecución de clases de manera controlada, para poder comprobar que los métodos realizan su cometido de forma correcta. También sirve como herramienta para realizar las pruebas de regresión, que realizaremos cuando una parte del código ha sido modificada y sea necesario comprobar que se sigue cumpliendo con todos los requisitos.
JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba; en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente.
JUnit es también un medio de controlar las pruebas de regresión, necesarias cuando una parte del código ha sido modificado y se desea ver que el nuevo código cumple con los requerimientos anteriores y que no se ha alterado su funcionalidad después de la nueva modificación.
El propio framework incluye formas de ver los resultados (runners) que pueden ser en modo texto, gráfico (AWT o Swing) o como tarea en Ant.
Cuando probamos un programa, lo ejecutamos con unos datos de entrada (casos de prueba) para verificar que el funcionamiento cumple los requisitos esperados. Definimos prueba unitaria como la prueba de uno de los módulos que componen un programa.
El concepto fundamental en estas herramientas es el caso de prueba (test case), y la suite de prueba (test suite). Los casos de prueba son clases o módulos que disponen de métodos para probar los métodos de una clase o módulo concreta/o. Así, para cada clase que quisiéramos probar definiríamos su correspondiente clase de caso de prueba. Mediante las suites podemos organizar los casos de prueba, de forma que cada suite agrupa los casos de prueba de módulos que están funcionalmente relacionados.
Las pruebas que se van construyendo se estructuran así en forma de árbol, de modo que las hojas son los casos de prueba, y podemos ejecutar cualquier subárbol (suite).
De esta forma, construimos programas que sirven para probar nuestros módulos, y que podremos ejecutar de forma automática. A medida que la aplicación vaya avanzando, se dispondrá de un conjunto importante de casos de prueba, que servirá para hacer pruebas de regresión. Eso es importante, puesto que cuando cambiamos un módulo que ya ha sido probado, el cambio puede haber afectado a otros módulos, y sería necesario volver a ejecutar las pruebas para verificar que todo sigue funcionando.
JUnit está diseñado alrededor de dos patrones de diseño principales: el patrón Command y el patrón Composite.
Un TestCase es un objeto Command. Cualquier clase que contenga métodos de testeo debería extender la clase TestCase. Un TestCase puede definir cualquier número de métodos públicos testXXX(). Cuando quieres comprobar el resultado esperado y el real, invocas una variante del método assert().
Las subclases de TestCase que contienen varios métodos testXXX() pueden utilizar los métodos setUp() y tearDown() para inicializar y liberar cualquier objeto común que se vaya a testear, conocido como la "instalación" (material) del test. Cada método de tests se ejecuta sobre su propia instalación, llamando a setUp() antes y a tearDown() después de cada método para asegurarse de que no hay efectos colaterales entre ejecuciones de tests.
Conclusión
Al igual que la gran mayoría de las tecnologías del mundo Java, JUnit evoluciona para aportar nuevas mejoras y hacernos la vida más fácil a los programadores, diseñadores de pruebas, etc.
Ahora JUnit incorpora las siguientes ventajas y modificaciones respecto a versiones anteriores
Las clases que contienen los métodos que representan las pruebas ya no tienen que ser subclases de junit.framework.TestCase
Los métodos que representan las pruebas a realizar ya no tienen que tener el prefijo “test” en su nombre sino que se indican con la anotación @Test
Sustitución del método ‘setUp’ por la anotación o anotaciones @Before.
Sustitución del método ‘tearDown’ por la anotación o anotaciones @After.
Se pueden realizar pruebas en donde el tiempo de ejecución es crítico. De manera que una prueba falle si tarda más de X milisegundos en ser ejecutada.
Se pueden realizar pruebas en donde se debe controlar que una excepción es lanzada.
Se pueden desactivar pruebas, a través de la anotación @Ignore.
Fuentes
https://www.adictosaltrabajo.com/tutoriales/junit-4/https://es.slideshare.net/ikercanarias/introduccin-a-junit
http://programacion.net/articulo/primeros_pasos_con_junit_265
Comentarios
Publicar un comentario