Kata tdd
-
Upload
jorge-ortiz -
Category
Technology
-
view
178 -
download
2
description
Transcript of Kata tdd
Kata TDDJorge D. Ortiz Fuentes
@jdortiz
Parte 1:Pruebas del modelo
Aviso para navegantes
★Esto no es una clase, sino una experiencia compartida.
★Si compartes, aprendemos todos.
★Si algo no te gusta, ofrece tus alternativas.
3
¿TDD?★Test Driven Development
★Es una forma de escribir software
★Supone pensar primero en la verificación del código y luego en escribirlo
4
¿Por qué TDD?★Codigo que hace lo que pensamos.
★Programar en piloto automático.
★Progreso medible.
★Mucho más fácil abordar cambios.
5
Secuencia de trabajo★Siguiente funcionalidad
★Escribir la prueba
★Escribir el código más simple que pasa la prueba
★Refactorizar
★Repetir hasta acabar cada historia
6
Código más corto1.Más fijado (hard coded)2.Más cerca del principio del método
3.Menos sangrado (indented)4.Más corto
7
Texto
http://osherove.com/blog/2010/1/6/tdd-4-questions-that-will-help-you-create-the-simplest-thing.html
Las herramientas★Introspección (OCUnit)
★Inyección de dependencias๏Constructor
๏Propiedades
★Mocks y stubs
8
Las reglas del juego★Sólo probamos nuestro código
★Sólo un nivel cada vez
★Sólo los métodos públicos
★Sólo una cosa en cada prueba
★Las pruebas son independientes unas de otras (ni secuencia, ni estado)
9
Algunos trucos★Usar sut = reutilizar pruebas
★Confirmar que no hay avisos o errores
★Separar en clases
★Refactorizar las pruebas cuando interese
10
Inconvenientes★ Más lento y más trabajo en calidad
★ Diseño sin visión de conjunto
★ Reescribir pruebas al cambiar requisitos
★ Se requieren otras pruebas además
★ Mismas carencias las pruebas que el código (sistema que no puede entenderse a sí mismo, W.E.Deming)
11
Ventajas★ Menos interactuación y menos
tiempo depurando
★ Más facil adaptarse a los cambios
★ Documentación en código y menos asunciones.
★ Cobertura prácticamente total
12
Parte 2:Pruebas de VC
Interfaz de la app★Maestro/detalle๏Maestro: Mezclas agrupadas por
categorías
๏Detalle: Mezcla y sus datos
14
View ctlr maestro★BlendsViewController
★Lista (subclase de UITableViewController)
15
View ctrlr detalle★BlendDetailsViewController
★Subclase de UIViewController
16
A tener en cuenta★Problemas con OCMock de Core Data (NSProxy)
★No todos los métodos están pensados para ser probados (KVC al rescate)
17
Parte 3:Código de otros
Modelo de trabajo1.Leer el código2.Pensar una prueba que confirma cómo funciona
3.Escribirla y ver que la pasa4.Refactorizar si procede.5.Repetir
19
Código limpio★Aprovechar para limpiar el código
★Eliminar repetición y ganar consistencia
★Sólo un nivel de abstracción por método
20
¡Gracias!