Junit
Pruebas unitarias
Conceptos básicos
Es una forma de probar el correcto funcionamiento de un módulo de código. Sirve para asegurar que cada uno de los módulos funcione correctamente por separado. Con las Pruebas de Integración, se podrá asegurar el correcto funcionamiento del sistema o subsistema en cuestión. Escribir casos de prueba para cada método en elmódulo → cada caso sea independiente del resto.
Pruebas unitarias
Requisitos
Automatizable: no debería requerirse una intervención manual. Esto es especialmente útil para integración continua. Completas: deben cubrir la mayor cantidad de código. Repetibles o Reutilizables: no se deben crear pruebas que sólo puedan ser ejecutadas una sola vez. También es útil para integración continua.Pruebas unitarias
Requisitos
Independientes: la ejecución de una prueba no debe afectar a la ejecución de otra. Profesionales: las pruebas deben ser consideradas igual que el código, con la misma profesionalidad, documentación, etc.
Pruebas unitarias
Objetivos
Aislar cada parte del programa. Mostrar que las partes individuales son correctas. Proporcionan un contrato escrito, queel trozo de código debe satisfacer. Controlar el impacto de los cambios. Las pruebas unitarias aseguran funcionamiento de código tras cambios del mismo.
Pruebas unitarias
Ventajas
Fomentan el cambio: Facilitan al programador cambios de código para mejorar su estructura (refactorización) → Asegura que los nuevos cambios no han introducido errores. Simplifica la integración: Llegar afase de integración con seguridad de que el código está OK → Se facilitan las pruebas de integración. Documenta el código: Las propias pruebas son documentación del código → ahí se puede ver cómo utilizarlo.
Pruebas unitarias
Ventajas
Separación de la interfaz y la implementación: La lógica se prueba a través de los casos de prueba y no con interfaz → objetos mock (mock object) para simularel comportamiento de objetos complejos. Los errores están más acotados y son más fáciles de localizar: Tenemos pruebas unitarias que pueden desenmascararlos.
Pruebas unitarias
Limitaciones
Las pruebas unitarias no descubrirán todos los errores del código. Por definición, sólo prueban las unidades por sí solas → no descubrirán: • errores de integración • problemas de rendimiento •otros problemas que afectan a todo el sistema en su conjunto Puede no ser trivial anticipar todos los casos especiales de entradas.
JUnit
JUnit
Conceptos básicos
Framework para pruebas unitarias. Conjunto de librerías creadas por Erich Gamma y Kent Beck que son utilizadas en programación para hacer pruebas unitarias de aplicaciones Java El framework incluye formas de ver losresultados (runners) que pueden ser en modo texto, gráfico (AWT o Swing) o como tarea en Ant. Plug-ins para principales IDEs como Eclipse y NetBeans.
JUnit
Conceptos básicos
Open Source, disponible en http://www.junit.org Los casos de prueba son realmente programas Java. Quedan archivados y pueden (DEBEN) ser reejecutados tantas veces como sea necesario.
JUnit
Ejemplo sencillo
packagedominio; import java.util.Vector; public class Lista extends Vector { public Lista() { ... } public Lista(String[] elementos) {...} public Lista ordenar() {...} protected void ordenar(int iz, int de) { ... } }
← Representa una lista ordenable de forma creciente. Se ordena llamando al método público ordenar(), que llama a su vez a ordenar(0, size()-1)
JUnit
Ejemplo sencillo
•Un posible casode prueba es el siguiente:
String[] e3={"e", "d", "c", "b", "a"}; Lista reves=new Lista(e3); Lista derecha=reves.ordenar();
...y el resultado esperado:
"a", "b", "c", "d", "e"
JUnit
Ejemplo sencillo
String[] e3={"e", "d", "c", "b", "a"}; Lista reves=new Lista(e3); Lista derecha=reves.ordenar();
Si derecha es igual al resultado esperado, entonces el caso de prueba ha sido...
Regístrate para leer el documento completo.