baby steps to tdd
TRANSCRIPT
DEFINICIONES
Probar comportamiento de componentes Evitar dependencia entre componentes Estado conocido No es trabajo de QA
BENEFICIOS
Menor propensión a errores Rápidos Especificación ejecutable y viva del
comportamiento de un método
BENEFICIOS
Permite encapsular un error y enfocar el esfuerzo realizado
Paso necesario a técnicas que han demostrado su eficacia como TDD, Continuous Integration, Continuous Delivery
INVERSIÓN
Tiempo Metódico Disciplina Tener claro el concepto de prueba unitaria Capacidad de abstracción y encapsulamiento Decidir que probar y que no
RIESGOS
Probar por lograr un indicador Probar sin saber que se prueba Dejar pruebas sin pasar
QUE HAY DESPUÉS
Integration Tests Acceptance Tests Gui Tests
TDD
CICLO
Escribir el Test (dado <escenario>, cuando <comportamiento> entonces <asserts>) y verlo fallar
Escribir la implementación mas simple para que el test pase (cometiendo todos los pecados imaginables)
Refactor: mejorar el diseño sin afectar el comportamiento, detectar y corregir smells (código de producción y código de pruebas).
RECURSOS
• 12 meses 12 katas (http://12meses12katas.com/)
• Coding Dojo (http://codingdojo.org/)
FIBALLson dos jugadores
el puntaje de cada jugador empieza en 0 puntos,
Cada vez que un jugador anota un punto su puntaje obtiene puntos equivalentes a la siguiente variación de la serie fibonacci (hasta 21 puntos)0,1,2,3,5,8,13,21
si luego de obtener 21 puntos un jugador hace un punto mas, gana el partido (excepto si aplica la siguiente regla)
si dos jugadores empatan en 21 puntos entran a "suspenso"
Si un jugador hace un punto cuando el juego esta en "suspenso" el jugador se pone en "ventaja"
Si un jugador esta en ventaja y el otro jugador marca un punto el juego vuelve a "suspenso" y el jugador pierde la condición de "ventaja"
si un jugador en ventaja hace un punto mas gana la partida