¿Qué es TDD?
Test-Driven Development (TDD) es una metodología donde escribes los tests antes del código de producción. El ciclo es simple: escribe un test que falle (Red), escribe el código mínimo para que pase (Green), y refactoriza (Refactor).
El ciclo Red-Green-Refactor
- Red: escribe un test que describa el comportamiento deseado. El test falla porque el código no existe.
- Green: escribe el código mínimo necesario para que el test pase. No te preocupes por la calidad aún.
- Refactor: mejora el código manteniendo los tests verdes. Aquí aplicas patrones y limpias.
Ejemplo práctico
// Red: test falla
it('should calculate total with tax', () => {
expect(calculateTotal(100, 0.21)).toBe(121);
});
// Green: código mínimo
function calculateTotal(amount: number, tax: number): number {
return amount + amount * tax;
}
// Refactor: mejora expresión
function calculateTotal(amount: number, tax: number): number {
return amount * (1 + tax);
}
Beneficios comprobados
- Menos bugs: pruebas desde el primer momento.
- Diseño mejorado: el test te obliga a pensar en la interfaz antes que en la implementación.
- Confianza para refactorizar: los tests son tu red de seguridad.
- Documentación viva: los tests describen el comportamiento esperado.
TDD no es para todo
TDD brilla en lógica de negocio compleja. No tiene sentido para CRUD simple o prototipos exploratorios.
¿Quieres adoptar TDD en tu equipo? En Vynta formamos equipos en desarrollo guiado por pruebas.