tel./fax: +34 91 675 33 06 [email protected] - www ... · consultor tecnológico de desarrollo de...

13
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: ngonga

Post on 29-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

Avenida de Castilla1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

telfax +34 91 675 33 06infoautentiacom - wwwautentiacom

Somos su empresa de Soporte a Desarrollo InformaacuteticoEse apoyo que siempre quiso tener

1 Desarrollo de componentes y proyectos a medida

TecnologiacuteaDesarrolloSistemas

Gran Empresa

Produccioacuten

autentia

Certificacioacuteno Pruebas

Verificacioacuten previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1 Definicioacuten de frameworks corporativos2 Transferencia de conocimiento de nuevas arquitecturas3 Soporte al arranque de proyectos4 Auditoriacutea preventiva perioacutedica de calidad5 Revisioacuten previa a la certificacioacuten de proyectos6 Extensioacuten de capacidad de equipos de calidad7 Identificacioacuten de problemas en produccioacuten

3 Arranque de proyectos basados en nuevas tecnologiacuteas

iquestQueacute ofrece Autentia Real Business Solutions SL

Para maacutes informacioacuten visiacutetenos en wwwautentiacom

Compartimos nuestro conociemiento en wwwadictosaltrabajocom

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones hiacutebridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversioacuten de control (Spring)

BPM (jBPM o Bonita)Generacioacuten de informes (JasperReport)ESB (Open ESB)

Control de autenticacioacuten y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC JSF-PrimeFaces RichFaces HTML5 CSS3 JavaScript-jQuery

JPA-Hibernate MyBatisMotor de buacutesqueda empresarial (Solr)ETL (Talend)

Direccioacuten de Proyectos InformaacuteticosMetodologiacuteas aacutegilesPatrones de disentildeoTDD

2 Auditoriacutea de coacutedigo y recomendaciones de mejora

4 Cursos de formacioacuten (impartidos por desarrolladores en activo)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 112

Entra en Adictos a traveacutes de

Entrar

Eshymail

Contrasentildea

Deseo registrarmeOlvideacute mi contrasentildea

Inicio Quieacutenes somos Formacioacuten Comparador de salarios Nuestros libros Maacutes

raquo Estaacutes en Inicio Tutoriales Xcode Guiacutea Baacutesica Test Unitarios

Siacuteguenos a traveacutes de

Cataacutelogo de serviciosAutentia

Uacuteltimas Noticias

raquo Atencioacuten APLAZADOEstreno uacuteltimo capiacutetulo deTerrakas

raquo Vendedor Soy insegurofiltra o elige por mi si quieresque te compre

raquo Comentando el libro Elarte de pensar de RolfDobelli

raquo Ya estaacute a la venta misegundo libro Planifica tueacutexito de aprendiz aempresario

raquo Ya esta disponible eneBook mi primer libroInformaacutetica Profesional

Histoacuterico de noticias

Uacuteltimos Tutoriales

raquo Haciendo BDD conCucumber

raquo Manejo de test conTestLink

raquo Prototipado de pantallascon Pencil

Ver todos los tutoriales del autor

Sauacutel Garciacutea Diacuteaz

Consultor tecnoloacutegico de desarrollo de proyectos informaacuteticos

Charla sobre LiquiBase

Charla sobre Alfresco Community Edition

Puedes encontrarme en Autentia Ofrecemos servicios de soporte a desarrollofactoriacutea y formacioacuten

Somos expertos en JavaJEE

Fecha de publicacioacuten del tutorial 2013shy05shy13 Tutorial visitado 71 veces Descargar en PDF

Xcode shy Guiacutea Baacutesica Tests Unitarios

0 Indice de contenidos

1 Entorno2 Introduccioacuten3 OCUnit

31 Antildeadiendo Tests Unitarios a nuestro proyecto32 Configuracioacuten Test Loacutegicos33 Configuracioacuten Test de Aplicacioacuten

4 Primeros Tests Unitarios5 Alternativas OCUnit y complementos6 Conclusiones

1 Entorno

Hardware Portaacutetil MacBook Pro 15 (26 GHz Intel Core i7 8GB DDR3 SDRAM 250GB HDD)Sistema Operativo Mac OS X Mountain Lion 1082Xcode 462

2 Introduccioacuten

Independientemente del software que estemos desarrollando el uso de TDD (Test Driven Development) es un enfoquede desarrollo aacutegil en el que primero se escriben las pruebas y despueacutes el coacutedigo necesario para que las pruebas seejecuten de manera satisfactoria El objetivo del tutorial no es explicar cuaacuteles son las ventajas de aplicar TDD en losdesarrollos actuales incluidos los desarrollos para plataformas moacuteviles en este caso para dispositivos iOS sinoaprender que herramientas pone a nuestra disposicioacuten dicha plataforma para probar nuestras apps En cualquier casono esta mal recordar algunas de las principales ventajas de esta teacutecnica como por ejemplo

Mayor calidad y robustez del coacutedigoDisentildeo maacutes simple y enfocado a las necesidades realesAumento de la productividadMenos tiempo en la deteccioacuten y correccioacuten de errores

3 OCUnit

OCUnit es un framework de pruebas para Objective C Esta desarrollado por SenTe y la principal ventaja frente a otrasalternativas disponibles es que Apple lo ha integrado en Xcode desde la versioacuten 21 por lo que resulta maacutes faacutecil y raacutepidocomenzar a trabajar Es multiplataforma lo cual es uacutetil si estamos usando Objective C en plataformas distintas a iOS oMac OS X

Otra caracteriacutestica importante de OCUnit es que pone a nuestra disposicioacuten SenTestingKit framework openshysource quenos permitiraacute disentildear conjuntos de pruebas para probar nuestro coacutedigo La perfecta integracioacuten con Xcode nos ayudaraacutea incluir TDD en nuestros desarrollos de una manera faacutecil permitieacutendonos realizar dos tipos de pruebas

Pruebas loacutegicas estas pruebas comprueban el correcto funcionamiento de una pieza de coacutedigo por siacute mismo (noen el contexto de una aplicacioacuten) Con las pruebas loacutegicas se puede disentildear casos de prueba especiacuteficos paraprobar una pieza de coacutedigo de manera independiente Tambieacuten puede utilizar las pruebas loacutegicas para llevar acabo pruebas de estreacutes de nuestro coacutedigo aseguraacutendonos que se comporta correctamente en situacionesextremas que probablemente se den en la ejecucioacuten de la aplicacioacuten en un entorno real Estas pruebas ayudan aproducir un coacutedigo robusto que funciona correctamente cuando se dan casos que no se han previsto

Pruebas de aplicacioacuten estos exaacutemenes prueban piezas de coacutedigo en el contexto real de la aplicacioacuten Podemosutilizar estas pruebas de aplicacioacuten para asegurarnos de que las conexiones entre los controles de la interfaz deusuario (IBOutlet y IBAction) y los objetos de negocio funcionan correctamente Tambieacuten podemos utilizar estas

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 212

raquo Como testear aplicacionesen Emberjs

raquo Internacionalizar unaaplicacioacuten creada con Ember

Uacuteltimos Tutoriales delAutor

raquo Mountain Lion shy GitldquoCommand Not Foundrdquo

raquo Chrome Remote Desktop

raquo Coacutemo implementar undatatable editable con elsoporte de primefaces

raquo Coacutemo trabajar con branchen SmartGit

raquo Coacutemo trabajar con JSF2 yel soporte de inyeccioacuten dedependencias de Spring

Uacuteltimas ofertas deempleo

2011shy09shy08Comercial shy Ventas shyMADRID

2011shy09shy03Comercial shy Ventas shyVALENCIA

2011shy08shy19Comercial shy Compras shyALICANTE

2011shy07shy12Otras Sin catalogar shyMADRID

2011shy07shy06Otras Sin catalogar shyLUGO

tests para realizar pruebas de hardware como por ejemplo obtener la ubicacioacuten del dispositivo en el que seejecuta la aplicacioacuten

31 Antildeadiendo Tests Unitarios a nuestro proyecto

La forma maacutes coacutemoda de antildeadir tests unitarios a un proyecto es en el momento de crearlo Si selecciona la opcioacutenInclude unit tests al crear un proyecto Xcode incluye un nuevo target para las pruebas unitarias en el proyecto

Si este no es el caso podemos seguir los siguientes pasos

1 shy Desde el proyecto al que queremos antildeadir la unidad de pruebas elegimos File gt New gt New Target2 shy Seleccionamos una de las plantillas que nos proporciona Xcode en funcioacuten de la plataforma

IOS En esta seccioacuten seleccionar Otros gt Cocoa Touch Unit Testing BundleMac En esta seccioacuten seleccionar Otros gt Cocoa Unit Testing Bundle

4 shy Seleccionamos la opcioacuten Next5 shy Especificamos la informacioacuten baacutesica y necesaria para el nuevo target

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 312

6 shy Pulsamos finish

Desde el navegador podemos ver el nuevo target en la jerarquiacutea del proyecto

32 Configuracioacuten Test Loacutegicos

Si antildeadimos un nuevo target para los tests unitarios tal y como os he descrito en el punto anterior ya estaacute configuradopara realizar pruebas loacutegicas Para realizar la configuracioacuten manualmente podemos seguir los siguientes pasos

1 shy Desde el editor de proyecto seleccionamos el target a configurar y pulsamos Build settings

2 shy Desde el panel Build settings click All

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 412

3 shy En el campo de buacutesqueda escribimos bundle loader

4 shy Si la propiedad bundle loader aparece en negrita la eliminamos

5 shy En el campo de buacutesqueda escribimos test host

6 shy Si la propiedad test host aparece en negrita la eliminamos

33 Configuracioacuten Test de Aplicacioacuten

Si hemos creado un proyecto marcando la opcioacuten include unit test la unidad de tests ya estaacute configurada para realizarpruebas unitarias de aplicacioacuten De cualquier otro modo para configurar la unidad de test podemos seguir los siguientespasos

1 y 2 shy Exactamente igual que en el punto anterior Con la unidad de pruebas que queremos configurar seleccionadaabrimos el panel Build settings

3 shy Asignamos valor a la propiedades de la seccioacuten bundle loader en funcioacuten de la plataforma

iOS $(BUILT_PRODUCTS_DIR)appMac $(BUILT_PRODUCTS_DIR)appContentsMacOS

donde appshyname es el nombre de nuestra aplicacioacuten

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 2: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 112

Entra en Adictos a traveacutes de

Entrar

Eshymail

Contrasentildea

Deseo registrarmeOlvideacute mi contrasentildea

Inicio Quieacutenes somos Formacioacuten Comparador de salarios Nuestros libros Maacutes

raquo Estaacutes en Inicio Tutoriales Xcode Guiacutea Baacutesica Test Unitarios

Siacuteguenos a traveacutes de

Cataacutelogo de serviciosAutentia

Uacuteltimas Noticias

raquo Atencioacuten APLAZADOEstreno uacuteltimo capiacutetulo deTerrakas

raquo Vendedor Soy insegurofiltra o elige por mi si quieresque te compre

raquo Comentando el libro Elarte de pensar de RolfDobelli

raquo Ya estaacute a la venta misegundo libro Planifica tueacutexito de aprendiz aempresario

raquo Ya esta disponible eneBook mi primer libroInformaacutetica Profesional

Histoacuterico de noticias

Uacuteltimos Tutoriales

raquo Haciendo BDD conCucumber

raquo Manejo de test conTestLink

raquo Prototipado de pantallascon Pencil

Ver todos los tutoriales del autor

Sauacutel Garciacutea Diacuteaz

Consultor tecnoloacutegico de desarrollo de proyectos informaacuteticos

Charla sobre LiquiBase

Charla sobre Alfresco Community Edition

Puedes encontrarme en Autentia Ofrecemos servicios de soporte a desarrollofactoriacutea y formacioacuten

Somos expertos en JavaJEE

Fecha de publicacioacuten del tutorial 2013shy05shy13 Tutorial visitado 71 veces Descargar en PDF

Xcode shy Guiacutea Baacutesica Tests Unitarios

0 Indice de contenidos

1 Entorno2 Introduccioacuten3 OCUnit

31 Antildeadiendo Tests Unitarios a nuestro proyecto32 Configuracioacuten Test Loacutegicos33 Configuracioacuten Test de Aplicacioacuten

4 Primeros Tests Unitarios5 Alternativas OCUnit y complementos6 Conclusiones

1 Entorno

Hardware Portaacutetil MacBook Pro 15 (26 GHz Intel Core i7 8GB DDR3 SDRAM 250GB HDD)Sistema Operativo Mac OS X Mountain Lion 1082Xcode 462

2 Introduccioacuten

Independientemente del software que estemos desarrollando el uso de TDD (Test Driven Development) es un enfoquede desarrollo aacutegil en el que primero se escriben las pruebas y despueacutes el coacutedigo necesario para que las pruebas seejecuten de manera satisfactoria El objetivo del tutorial no es explicar cuaacuteles son las ventajas de aplicar TDD en losdesarrollos actuales incluidos los desarrollos para plataformas moacuteviles en este caso para dispositivos iOS sinoaprender que herramientas pone a nuestra disposicioacuten dicha plataforma para probar nuestras apps En cualquier casono esta mal recordar algunas de las principales ventajas de esta teacutecnica como por ejemplo

Mayor calidad y robustez del coacutedigoDisentildeo maacutes simple y enfocado a las necesidades realesAumento de la productividadMenos tiempo en la deteccioacuten y correccioacuten de errores

3 OCUnit

OCUnit es un framework de pruebas para Objective C Esta desarrollado por SenTe y la principal ventaja frente a otrasalternativas disponibles es que Apple lo ha integrado en Xcode desde la versioacuten 21 por lo que resulta maacutes faacutecil y raacutepidocomenzar a trabajar Es multiplataforma lo cual es uacutetil si estamos usando Objective C en plataformas distintas a iOS oMac OS X

Otra caracteriacutestica importante de OCUnit es que pone a nuestra disposicioacuten SenTestingKit framework openshysource quenos permitiraacute disentildear conjuntos de pruebas para probar nuestro coacutedigo La perfecta integracioacuten con Xcode nos ayudaraacutea incluir TDD en nuestros desarrollos de una manera faacutecil permitieacutendonos realizar dos tipos de pruebas

Pruebas loacutegicas estas pruebas comprueban el correcto funcionamiento de una pieza de coacutedigo por siacute mismo (noen el contexto de una aplicacioacuten) Con las pruebas loacutegicas se puede disentildear casos de prueba especiacuteficos paraprobar una pieza de coacutedigo de manera independiente Tambieacuten puede utilizar las pruebas loacutegicas para llevar acabo pruebas de estreacutes de nuestro coacutedigo aseguraacutendonos que se comporta correctamente en situacionesextremas que probablemente se den en la ejecucioacuten de la aplicacioacuten en un entorno real Estas pruebas ayudan aproducir un coacutedigo robusto que funciona correctamente cuando se dan casos que no se han previsto

Pruebas de aplicacioacuten estos exaacutemenes prueban piezas de coacutedigo en el contexto real de la aplicacioacuten Podemosutilizar estas pruebas de aplicacioacuten para asegurarnos de que las conexiones entre los controles de la interfaz deusuario (IBOutlet y IBAction) y los objetos de negocio funcionan correctamente Tambieacuten podemos utilizar estas

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 212

raquo Como testear aplicacionesen Emberjs

raquo Internacionalizar unaaplicacioacuten creada con Ember

Uacuteltimos Tutoriales delAutor

raquo Mountain Lion shy GitldquoCommand Not Foundrdquo

raquo Chrome Remote Desktop

raquo Coacutemo implementar undatatable editable con elsoporte de primefaces

raquo Coacutemo trabajar con branchen SmartGit

raquo Coacutemo trabajar con JSF2 yel soporte de inyeccioacuten dedependencias de Spring

Uacuteltimas ofertas deempleo

2011shy09shy08Comercial shy Ventas shyMADRID

2011shy09shy03Comercial shy Ventas shyVALENCIA

2011shy08shy19Comercial shy Compras shyALICANTE

2011shy07shy12Otras Sin catalogar shyMADRID

2011shy07shy06Otras Sin catalogar shyLUGO

tests para realizar pruebas de hardware como por ejemplo obtener la ubicacioacuten del dispositivo en el que seejecuta la aplicacioacuten

31 Antildeadiendo Tests Unitarios a nuestro proyecto

La forma maacutes coacutemoda de antildeadir tests unitarios a un proyecto es en el momento de crearlo Si selecciona la opcioacutenInclude unit tests al crear un proyecto Xcode incluye un nuevo target para las pruebas unitarias en el proyecto

Si este no es el caso podemos seguir los siguientes pasos

1 shy Desde el proyecto al que queremos antildeadir la unidad de pruebas elegimos File gt New gt New Target2 shy Seleccionamos una de las plantillas que nos proporciona Xcode en funcioacuten de la plataforma

IOS En esta seccioacuten seleccionar Otros gt Cocoa Touch Unit Testing BundleMac En esta seccioacuten seleccionar Otros gt Cocoa Unit Testing Bundle

4 shy Seleccionamos la opcioacuten Next5 shy Especificamos la informacioacuten baacutesica y necesaria para el nuevo target

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 312

6 shy Pulsamos finish

Desde el navegador podemos ver el nuevo target en la jerarquiacutea del proyecto

32 Configuracioacuten Test Loacutegicos

Si antildeadimos un nuevo target para los tests unitarios tal y como os he descrito en el punto anterior ya estaacute configuradopara realizar pruebas loacutegicas Para realizar la configuracioacuten manualmente podemos seguir los siguientes pasos

1 shy Desde el editor de proyecto seleccionamos el target a configurar y pulsamos Build settings

2 shy Desde el panel Build settings click All

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 412

3 shy En el campo de buacutesqueda escribimos bundle loader

4 shy Si la propiedad bundle loader aparece en negrita la eliminamos

5 shy En el campo de buacutesqueda escribimos test host

6 shy Si la propiedad test host aparece en negrita la eliminamos

33 Configuracioacuten Test de Aplicacioacuten

Si hemos creado un proyecto marcando la opcioacuten include unit test la unidad de tests ya estaacute configurada para realizarpruebas unitarias de aplicacioacuten De cualquier otro modo para configurar la unidad de test podemos seguir los siguientespasos

1 y 2 shy Exactamente igual que en el punto anterior Con la unidad de pruebas que queremos configurar seleccionadaabrimos el panel Build settings

3 shy Asignamos valor a la propiedades de la seccioacuten bundle loader en funcioacuten de la plataforma

iOS $(BUILT_PRODUCTS_DIR)appMac $(BUILT_PRODUCTS_DIR)appContentsMacOS

donde appshyname es el nombre de nuestra aplicacioacuten

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 3: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 212

raquo Como testear aplicacionesen Emberjs

raquo Internacionalizar unaaplicacioacuten creada con Ember

Uacuteltimos Tutoriales delAutor

raquo Mountain Lion shy GitldquoCommand Not Foundrdquo

raquo Chrome Remote Desktop

raquo Coacutemo implementar undatatable editable con elsoporte de primefaces

raquo Coacutemo trabajar con branchen SmartGit

raquo Coacutemo trabajar con JSF2 yel soporte de inyeccioacuten dedependencias de Spring

Uacuteltimas ofertas deempleo

2011shy09shy08Comercial shy Ventas shyMADRID

2011shy09shy03Comercial shy Ventas shyVALENCIA

2011shy08shy19Comercial shy Compras shyALICANTE

2011shy07shy12Otras Sin catalogar shyMADRID

2011shy07shy06Otras Sin catalogar shyLUGO

tests para realizar pruebas de hardware como por ejemplo obtener la ubicacioacuten del dispositivo en el que seejecuta la aplicacioacuten

31 Antildeadiendo Tests Unitarios a nuestro proyecto

La forma maacutes coacutemoda de antildeadir tests unitarios a un proyecto es en el momento de crearlo Si selecciona la opcioacutenInclude unit tests al crear un proyecto Xcode incluye un nuevo target para las pruebas unitarias en el proyecto

Si este no es el caso podemos seguir los siguientes pasos

1 shy Desde el proyecto al que queremos antildeadir la unidad de pruebas elegimos File gt New gt New Target2 shy Seleccionamos una de las plantillas que nos proporciona Xcode en funcioacuten de la plataforma

IOS En esta seccioacuten seleccionar Otros gt Cocoa Touch Unit Testing BundleMac En esta seccioacuten seleccionar Otros gt Cocoa Unit Testing Bundle

4 shy Seleccionamos la opcioacuten Next5 shy Especificamos la informacioacuten baacutesica y necesaria para el nuevo target

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 312

6 shy Pulsamos finish

Desde el navegador podemos ver el nuevo target en la jerarquiacutea del proyecto

32 Configuracioacuten Test Loacutegicos

Si antildeadimos un nuevo target para los tests unitarios tal y como os he descrito en el punto anterior ya estaacute configuradopara realizar pruebas loacutegicas Para realizar la configuracioacuten manualmente podemos seguir los siguientes pasos

1 shy Desde el editor de proyecto seleccionamos el target a configurar y pulsamos Build settings

2 shy Desde el panel Build settings click All

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 412

3 shy En el campo de buacutesqueda escribimos bundle loader

4 shy Si la propiedad bundle loader aparece en negrita la eliminamos

5 shy En el campo de buacutesqueda escribimos test host

6 shy Si la propiedad test host aparece en negrita la eliminamos

33 Configuracioacuten Test de Aplicacioacuten

Si hemos creado un proyecto marcando la opcioacuten include unit test la unidad de tests ya estaacute configurada para realizarpruebas unitarias de aplicacioacuten De cualquier otro modo para configurar la unidad de test podemos seguir los siguientespasos

1 y 2 shy Exactamente igual que en el punto anterior Con la unidad de pruebas que queremos configurar seleccionadaabrimos el panel Build settings

3 shy Asignamos valor a la propiedades de la seccioacuten bundle loader en funcioacuten de la plataforma

iOS $(BUILT_PRODUCTS_DIR)appMac $(BUILT_PRODUCTS_DIR)appContentsMacOS

donde appshyname es el nombre de nuestra aplicacioacuten

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 4: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 312

6 shy Pulsamos finish

Desde el navegador podemos ver el nuevo target en la jerarquiacutea del proyecto

32 Configuracioacuten Test Loacutegicos

Si antildeadimos un nuevo target para los tests unitarios tal y como os he descrito en el punto anterior ya estaacute configuradopara realizar pruebas loacutegicas Para realizar la configuracioacuten manualmente podemos seguir los siguientes pasos

1 shy Desde el editor de proyecto seleccionamos el target a configurar y pulsamos Build settings

2 shy Desde el panel Build settings click All

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 412

3 shy En el campo de buacutesqueda escribimos bundle loader

4 shy Si la propiedad bundle loader aparece en negrita la eliminamos

5 shy En el campo de buacutesqueda escribimos test host

6 shy Si la propiedad test host aparece en negrita la eliminamos

33 Configuracioacuten Test de Aplicacioacuten

Si hemos creado un proyecto marcando la opcioacuten include unit test la unidad de tests ya estaacute configurada para realizarpruebas unitarias de aplicacioacuten De cualquier otro modo para configurar la unidad de test podemos seguir los siguientespasos

1 y 2 shy Exactamente igual que en el punto anterior Con la unidad de pruebas que queremos configurar seleccionadaabrimos el panel Build settings

3 shy Asignamos valor a la propiedades de la seccioacuten bundle loader en funcioacuten de la plataforma

iOS $(BUILT_PRODUCTS_DIR)appMac $(BUILT_PRODUCTS_DIR)appContentsMacOS

donde appshyname es el nombre de nuestra aplicacioacuten

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 5: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 412

3 shy En el campo de buacutesqueda escribimos bundle loader

4 shy Si la propiedad bundle loader aparece en negrita la eliminamos

5 shy En el campo de buacutesqueda escribimos test host

6 shy Si la propiedad test host aparece en negrita la eliminamos

33 Configuracioacuten Test de Aplicacioacuten

Si hemos creado un proyecto marcando la opcioacuten include unit test la unidad de tests ya estaacute configurada para realizarpruebas unitarias de aplicacioacuten De cualquier otro modo para configurar la unidad de test podemos seguir los siguientespasos

1 y 2 shy Exactamente igual que en el punto anterior Con la unidad de pruebas que queremos configurar seleccionadaabrimos el panel Build settings

3 shy Asignamos valor a la propiedades de la seccioacuten bundle loader en funcioacuten de la plataforma

iOS $(BUILT_PRODUCTS_DIR)appMac $(BUILT_PRODUCTS_DIR)appContentsMacOS

donde appshyname es el nombre de nuestra aplicacioacuten

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 6: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 512

4 shy Asignamos valor a las propiedades de la seccioacuten test host a $(BUNDLE_LOADER)

5 shy Hacemos dependiente el target para las pruebas del target en el que se basa nuestra aplicacioacuten

6 shy Nos aseguramos que el target para las pruebas esta correctamente asociado al schema de nuestra aplicacioacutenDesde el panel de edicioacuten editamos el schema de nuestra aplicacioacuten

Seleccionamos la opcioacuten Test del menuacute lateral y tenemos que ver la unidad de pruebas asociada

4 Primeros Tests Unitarios

El primer paso a la hora de escribir pruebas unitarias y por tanto el primer paso para comenzar el disentildeo de nuestraaplicacioacuten es identificar los requisitos es decir cuaacutel es la necesidad de nuestro software Despueacutes podemos decidirque coacutedigo nos gustariacutea usar para satisfacer la necesidad requerida Este coacutedigo es el que usaremos para conformar elcuerpo de nuestro test Para poder seguir el tutorial maacutes coacutemodamente os dejo aquiacute los fuentes

Una caracteriacutestica importante de cualquier test unitario es que debe ser repetible La ejecucioacuten de los testsindependientemente del entorno en el que se ejecuten debe terminar satisfactoriamente si el coacutedigo de la prueba escorrecto y fallar en caso contrario Los factores ambientales externos tales como la configuracioacuten del entorno en el quese ejecutan las pruebas o la integracioacuten de software externo como base de datos no deben influir en la en la correctaejecucioacuten de los mismos

El ejemplo propuesto para el tutorial es una aplicacioacuten sencilla que convierte Euros a pesetas llamadme nostaacutelgico siquereacuteis shy)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 7: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 612

No nos daraacuten el premio al mejor disentildeo del antildeo pero como ejemplo seraacute suficiente Recibimos por tanto un dato deentrada que seraacute convertido y devolveremos un dato de salida Tendremos una clase encargado de realizar el negociode nuestra app y devolver el resultado de la operacioacuten realizada Lo primero que voy a probar es que la clase tiene lapropiedad en la que se retornaraacute el resultado

Loacutegicamente tenemos errores de compilacioacuten ya que todaviacutea no existe nuestra clase ConversorEuros Recordad queestamos haciendo TDD y primero vamos escribiendo los test lo que nos iraacute guiando para escribir nuestro coacutedigo Ahoranuestro test no funciona (red flag) El siguiente paso es refactorizar nuestro coacutedigo para que el test pasesatisfactoriamente (green flag) Creamos entonces ConversorEuros e incluimos en la declaracioacuten la propiedad valuePts

Quedando la implementacioacuten

Desde el test veremos que los errores de compilacioacuten se han solucionado asiacute que vamos a ejecutar el test Para ello solotenemos que pulsar Product gt Test El resultado de la ejecucioacuten se muestra en la vista de Log del menu lateral deXcode

De manera sencilla hemos seguido el flujo de trabajo de TDD

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 8: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 712

Elegir un requisito se elige de una lista el requisitos el que se creeacute que nos daraacute mayor conocimiento del problemay que a la vez sea faacutecilmente implementableEscribir una prueba se comienza escribiendo una prueba para el requisito Para ello el programador debeentender claramente las especificaciones de la funcionalidad que va a implementarVerificar que la prueba falla si la prueba no falla es porque el requisito ya estaba implementado o porque laprueba es erroacuteneaEscribir la implementacioacuten escribir el coacutedigo maacutes sencillo que haga que la prueba funcione Se usa la metaacuteforaHazlo faacutecil (Keep It Simple Stupid (KISS))Ejecutar las pruebas automatizadas verificar si todo el conjunto de pruebas funciona correctamenteRefactorizacioacuten el paso final es la refactorizacioacuten que utilizaremos normalmente para eliminar coacutedigo duplicado ydejar nuestro coacutedigo maacutes limpio y legibleActualizacioacuten de la lista de requisitos se actualiza la lista de requisitos tachando el requisito implementadoAsimismo se agregan requisitos que se hayan visto como necesarios durante este ciclo y se agreganrequerimientos de disentildeo por ejemplo que una funcionalidad esteacute desacoplada de otra

Seguimos escribiendo nuestro coacutedigo escribiendo un nuevo test En este caso probamos que el ConversorEuros escapaz de recibir un paraacutemetro de entrada y convertirlo a pesetas

Vemos que nuestro test esta marcado con red flag ya que el meacutetodo no esta declarado en ConversoEuros Realizamoslas modificaciones oportunas en nuestro coacutedigo

Y la implementacioacuten

A continuacioacuten ejecutamos los test Product gt Test

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 9: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 812

Podemos comprobar que el nuevo test falla con lo que continuamos con el siguiente paso en flujo de TDD yrefactorizamos nuestro coacutedigo para que la prueba pase satisfactoriamente (green flag)

Volvemos a lanzar los tests y voilaacute los tests se han ejecutado satisfactoriamente (green flag)

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 10: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 912

Asiacute podriacuteamos seguir escribiendo los tests y por tanto disentildeando y escribiendo el coacutedigo de nuestra aplicacioacuten para cadauna de las piezas que la conforma Esto es un ejemplo y por eso no voy a incluir en el tutorial los tests del resto de laspiezas que conforman la app como podriacutea ser los tests para el ViewController Sin embargo es importante que sepamosque asserts disponemos para validar el resultado de nuestro coacutedigo

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 11: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1012

Os dejo el enlace a la documentacioacuten oficial

5 Alternativas OCUnit y complementos

En este punto comentareacute brevemente algunas alternativas para OCUnit y tambieacuten un complemento indispensable comoOCMock para poder probar nuestras aplicaciones Apple

1 shy Google Toolkit for Mac el kit de herramientas de Google para Mac (GTM) esta lleno de utilidades interesantesy uacutetiles que aumentan las capacidades de prueba para iOS Las unidades descritas en GTM Testing soacutelo es unade sus caracteriacutesticas GTM nos proporciona una coleccioacuten de macros adicionales que permiten entre otras cosasque los meacutetodos de prueba sean maacutes cortos y maacutes descriptivos de lo que son cuando se escribe para los test conOCUnit Tambieacuten proporciona mock object para verificar que los mensajes de registro coincide con lo que cabriacuteaesperar y cuenta con categoriacuteas para las pruebas de graacuteficos e imaacutegenes

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 12: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1112

2 shy GHUnit El marco GHUnit estaacute disentildeado con OCUnit y Google compatibilidad Toolkit en mente De hecho esposible tomar conjuntos de pruebas escritas para cualquier framework de pruebas y utilizarlos en GHUnit sinmodificaciones La principal caracteriacutestica de GHUnit es que posee un frontend personalizado tanto para Mac yiOS que proporciona la capacidad de filtrar los resultados de pruebas basadas en palabras clave y ofrece unmayor control sobre la presentacioacuten de los resultados de las pruebas que Xcode permite Originalmente seejecuta en una aplicacioacuten lo que hace maacutes faacutecil depurar las pruebas unitarias de lo que es posible con OCUnit ElGHUnit GUI para iOS se muestra en siguiente imagen

3 shy OCMock OCMock es un framework para la creacioacuten sencilla de objetos simulados Utiliza las capacidades de

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

Page 13: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Consultor tecnológico de desarrollo de proyectos informáticos. ... Es multiplataforma, lo cual es útil si estamos

51313 Xcode Guiacutea Baacutesica Test Unitarios

wwwadictosaltrabajocomtutorialestutorialesphppagina=xcode-guia-test-unitarios 1212

Esta obra estaacute licenciada bajo licencia Creative Commons de ReconocimientoshyNo comercialshySin obras derivadas 25

PUSH THIS Page Pushers Community Help

shyshyshyshyno clicks + + + + + + + +

0 people brought clicks to this page

powered by karmacracy

Share | 0

raquo Registrate y accede a esta y otras ventajas laquo

Aniacutemate y comeacutentanos lo que pienses sobre este TUTORIAL

introspeccioacuten de ObjectiveshyC en tiempo de ejecucioacuten para crear automaacuteticamente objetos simulados que puedensustituir a las instancias de los objetos reales Al usar mocks en nuestros tests crearemos objetos indicando queacutemeacutetodos pueden ser llamados cuaacuteles deben ser los paraacutemetros y el valor que deben ser devueltos En la fase deverificacioacuten evaluaraacute la llamada a los meacutetodos previstos (y que no ejecutoacute nada mas) con los paraacutemetrosconfigurados previamente Este es un complemento imprescindible para el desarrollo de aplicaciones basados enpruebas (TDD)

6 Conclusiones

La conclusioacuten no tenemos excusa para no probar nuestros desarrollos en la plataforma de la manzanita dando un valorantildeadiado a las misma y a los usuarios que la utilicen ya que nuestra aplicacioacuten seraacute mucho maacutes fiable al haber sidodisentildeada mediante TDD

Espero que este tutorial os haya sido de ayuda Un saludo

Sauacutel Garciacutea Diacuteazsgdiazautentiacom

A continuacioacuten puedes evaluarlo

Regiacutestrate para evaluarlo

Por favor vota +1 o compaacutertelo si te parecioacute interesante

Copyright 2003shy2013 copy All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto