Impulsa el desarrollo mediante ciclos red-green-refactor donde escribes una prueba fallida que nombra el comportamiento deseado antes de escribir cualquier código de implementación. TDD produce pruebas que documentan la intención, detectan regresiones inmediatamente y fuerzan incrementos pequeños y verificables, haciéndolo especialmente valioso para funcionalidades complejas, correcciones de bugs con casos de fallo conocidos, y cualquier código que necesite una red de seguridad a largo plazo.
Casos de uso
- Construir un nuevo módulo donde el comportamiento está bien definido pero la implementación aún no está clara
- Corregir un bug de regresión: escribe la prueba que lo habría detectado antes de aplicar el parche
- Refactorizar código heredado que carece de pruebas y necesita una suite de caracterización primero
- Implementar un algoritmo desde una especificación y querer verificar la corrección incrementalmente
- Añadir una funcionalidad a un codebase con bajo historial de cobertura de pruebas
Funciones principales
- Escribe una sola prueba fallida que describa el siguiente comportamiento que quieres ver, usando la API como lo haría el que llama
- Ejecuta la prueba para confirmar que falla con un error claro y esperado: la luz roja confirmando que el comportamiento aún no está presente
- Escribe la implementación mínima necesaria para que la prueba pase, resiste añadir funcionalidad más allá del alcance de la prueba
- Refactoriza el código mientras mantienes todas las pruebas en verde: usa la red de seguridad para mejorar la estructura sin cambiar el comportamiento
- Repite el ciclo hasta que la funcionalidad esté completa, luego añade pruebas de integración que cubran el cableado entre unidades
Relacionados
Relacionados
3 Entradas indexadas
Safe refactoring
Ejecuta cambios de refactoring en pasos pequeños y respaldados por pruebas para que el comportamiento se preserve mientras la estructura mejora. Cada operación de refactoring: rename, extract, inline, move es validada por la suite de pruebas antes de proceder a la siguiente, previniendo el patrón común de refactoring en regresiones comportamentales sutiles que solo se detectan en producción.
Contract testing
Bloquea expectativas de API entre servicios usando consumer-driven contracts para que cuando un equipo cambia su implementación, falla en CI en lugar de durante un deployment de producción Coordinado. Contract testing previene el patrón común de fallo de integración donde ambos lados de una API parecen trabajar en aislamiento pero rompen cuando se conectan en producción.
Executing implementation plans
Ejecuta un plan de implementación pre-escrito en orden disciplinado, deteniéndose en puntos de control definidos para verificar supuestos antes de avanzar. Esta habilidad previene el patrón común de desviarse del plan silenciosamente cuando la realidad prueba que está equivocado, y crea oportunidades naturales de corregir el rumbo antes de que errores pequeños se compounding en rework grande.