Mock Objects. Problema Se tiene un administrador de salida de buses en una empresa la cual trabaja en transporte interdepartamental, este administrador.

Slides:



Advertisements
Presentaciones similares
Mock objects Rosemary Torrico Bascopé. Introducción Las Pruebas de unidad han sido aceptadas como la “mejor práctica” para el desarrollo de software.
Advertisements

CONVENIENCIAS ENTRE COMPRAR O DESARROLLAR SOFTWARE A MEDIDA.
No es.... Mockito - Mockito es una librería Java para la creación de Mock Object. - Muy usados para el testeo unitario en Test Driven Development,
Técnicas de Estimación. La estimación de lo que costara el desarrollo del software es una actividad importante, ya que una característica que debe tener.
Verificación y Validación de Software
Clase práctica Nº 1. Introducción al entorno de desarrollo Eclipse. Dpto. de Ciencias e Ingeniería de la Computación. Universidad Nacional del Sur.
¿Qué es el theming? Es el proceso de generar html y css a partir de los datos de nuestra aplicación. El diseño de una aplicación web hecha con Drupal lo.
1 Ingeniería del Software Solución Examen Junio 2009  Ejercicio MasTer (1h 20 min.)  Modelo Casos de Uso (2,5 puntos) Diagrama Casos de Uso Casos de.
1 /13 Repositorios online para Sironta Autor: Juan Aguilera Ramos Tutor: Jesús Gabaldón Estudios: Máster Universitario en Software Libre.
¿Qué es un Diagrama de Flujo? UN DIAGRAMA DE FLUJO, TAMBIÉN LLAMADO FLUJOGRAMA DE PROCESOS O DIAGRAMA DE PROCESOS, REPRESENTA LA SECUENCIA O LOS PASOS.
TDD en Python Javier Andrés Mansilla - Except Test Driven Development.
PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y constructores.
Desarrollo de App Wilson Chávez.
Guía de implementación
Se trata de una aplicación web disponible para todos
Curso de introducción a Fundeweb
Actividad #2 Los algoritmos
Introducción a la Programación Multimedial
. Primera Open Class Asignatura: Programación Estructurada Tema:
Inventario de Fuentes de Datos Abiertos de México
PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Avanzada
Tema 4: Ingeniería del Software
Olimpiadas Chilenas de Informática - Formación
Rubén de la Peña Ramos Lógicas para la Inf. y la I.A.
Unidad 2: LAS ETAPAS DE LA SIMULACION NUMERICA. Tema: 2
Sistema de Reservas por Wanderu
Proyecto de Software. t07
GESTIÓN DEL SITIO WEB.
Proyecto de Software. Clase 06
DISEÑO DE SERVICIOS.
Capacitación Macros en Excel
El resultado obtenido en esta etapa son las especificaciones de lo que se debe hacer para solucionar el problema.
CRE ATU PAGINA WEB CON HTML
TÍTULO DEL PROYECTO Plataformas Computacionales de Entrenamiento, Experimentación, Gestión y Mitigación de Ataques a la Ciberseguridad.
5. Análisis y diseño de sistemas secuenciales (II)
Hotel “La Posada de Don Juan”
G87 Ciclo fijo de cajera rectangular - 1/6
Alumna: Johana Argento
HABILIDADES DIGITALES PARA TODOS.
Santana Mejía Andrea Michell Villarruel Miranda Alejandro Ernesto
Diagramas del modelo uml
El uso de códigos QR en la enseñanza
6.6 Administración de defectos
Herramientas tecnológicas
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
Wikis Documento elaborado por VLA con fines académicos, para su uso en la BUAP.
COR. FAP ING. MEC. AERN. JOSE LUIS TEJEDA PRAELLI 1 Un modelo de distribución de vida alternativo que también se utiliza mucho es la distribución Weibull.
Excel Macros Cuadros de Control.
Tema 9. Estructuras de repetición. Clase 2
MODULO DE SISTEMAS DE INFORMACIÓN
MANUAL DE DIAPOSITIVAS DE WORDPRESS
Web Wordpress Autor: Ezequiel Rodolfo Tesone.
REDUCCIÓN DE UN DIAGRAMA E-R A TABLAS
MICROCONTROLADORES AVANZADOS.
Jetstream for students.
Diagramas de clases Modelan la vista estática del sistema
Recursos de la Biblioteca Virtual
Institución a la que pertenece
Herencia en C++ Agustín J. González ELO329.
DIAGRAMAS DE CASOS DE USO Tovar Tovar Alondra Desarrollo Orientado a Objetos.
MATRIZ DE CHEQUEO DE PARIDAD
Carlos Manuel Ortega Avila
¿Cómo simplificar un problema?
Paquetes y Documentación en Java
Sistema de Control de Ingreso de Vehículos
Herencia en C++ Agustín J. González ELO329.
Herencia en C++ Agustín J. González ELO329.
GC-F-004 V.01 CENTRO DE INDUSTRIA Y LA CONSTRUCCIÓN REGIONAL TOLIMA.
Polimorfismo en C++ y Métodos Virtuales
Transcripción de la presentación:

Mock Objects

Problema Se tiene un administrador de salida de buses en una empresa la cual trabaja en transporte interdepartamental, este administrador debe permitir a los Usuarios reservar asientos, mostrar los asientos disponibles, claro para esto la persona/cliente/usuario deberá dar sus datos, y elegir un viaje, que ya tiene un bus asignado que puede ser de tres tipos: Normal, Cama y Suite. Por lo tanto se notan las clases que interactuaran entre si las cuales serán: Persona, Asiento, Bus(Normal, Cama, Suite), Viaje, y finalmente el administrador el cual pertenece a la familia ALFARO, por lo tanto será llamado AdministradorALFARO, las clases serian representadas en el siguiente diagrama de clases:

Una de las ventajas de usar MockObjects es el modelamiento/testeo de una clase aislada la cual aún no tiene el correcto código funcional, en este caso probaremos la clase Asiento que contendrá un respectivo número, un respectivo pasajero (Persona) y será contenido en un Bus. Siendo este asignado a una persona:

Además este Asiento estará contenido dentro de un Bus: El cual a su vez está asignado a un respectivo Viaje:

Entonces la clase Asiento un no está disponible pero se la debe usar, y además probarla por lo tanto se escriben los tests correspondientes, pero con la ayuda del package que es proporcionado por Mockito:

La sencilla implementación de los MockObjects en Mockito gracias a su when().thenReturn(), permiten crear tests que ya se componen de Asserts, los cuales podrán ser usados por objetos reales en un futuro cuando el sistema esté completo.

He aquí el ejemplo, si se usan los test con una clase Asiento ya implementada, nótese que los assert son idénticos en ambos códigos.

Conclusiones El uso de los MockObjects permite dos utilidades principales: Aislar una clase y probar los enlaces que esta tiene con las otras clases con las que interactúa, comprobando si un posible error se encuentra dentro la clase, o fuera de la misma. Diseñar en función a un objeto que tiene cierto comportamiento que ya se conoce.

Conclusiones Podemos tomar a los mock objects como una herramienta MUY útil a la hora de desarrollar software a gran escala, pues la identificación de errores es bastante mas sencilla, el testeo de clases no implementadas del todo es posible, y la emulación de métodos/comportamientos aun no implementados ayuda al avance en la codificación.