Course of TDD: Test-Driven Development

Dani SantamariaJavier Ferrer

By Dani Santamaria y Javier Ferrer Software Design and Architecture y Methodologies and good practices

Learn Test-Driven Development (TDD) and the different ways and styles to apply it in Real World™️ applications

💸 Primera lección disponible sin registro 💸

Aprender la práctica del TDD puede ayudarte a construir software útil que funcione en el tiempo. Las reglas son sencillas:

  • 🔴 Escribe un test que falle para el comportamiento que quieres añadir
  • 🟢 Haz que el test pase, escribiendo el mínimo código posible.
  • 🔵 Refactoriza para mejorar el diseño del software

Sin embargo, aplicar TDD en aplicaciones del Mundo Real™️ tiene ciertos retos como ¿Cuándo merece la pena aplicarlo? ¿Qué estilo de TDD debería usar? ¿En qué dirección hago TDD? ¿Qué pasa si el diseño no emerge en la fase de refactor?

Con este curso aprenderás a:

  • 🚀 Conceptos y técnicas de TDD: Fake-it, implementación obvia, triangulación, premisa de prioridad de transformación (TPP), etc.
  • 👓 Enfoques de TDD a la hora de resolver un caso de uso: Inside-out, Outside-in y Middle-out
  • 💃 Estilos de TDD, cogiendo aquellas partes de TDD Clásico y TDD Mockist que más nos gustan para cada situación.
  • 👌 Buenas prácticas y recomendaciones a la hora de afrontar el TDD en nuestro día a día.
  • 🦄 Implicaciones a nivel de diseño de software: SOLID, YAGNI y DRY.

A lo largo del curso se proponen una serie de ejercicios para que puedas ir practicando la técnica en diferentes situaciones.

Durante el curso utilizamos una variedad de lenguajes de programación. Algunos ejemplos son específicos del desarrollo web (Back-end y Front-end), pero tratamos los conceptos de forma agnóstica para que también sea extrapolable a otros contextos.

¡Aprende TDD en profundidad para llevarlo a la práctica diaria en aplicaciones complejas! 💪

Contenido del curso

  1. 🍄 ¿Qué es TDD?
    • ⚡ TDD en 10 minutos
    • ♻️ Tu primer ciclo de TDD: Cálculo de precios con IVA
  2. 🙋 Inside-out TDD: El ciclo de TDD
    • 🟢 Optimizar el ciclo de TDD: 3 formas de pasar a verde
    • 🔵 Refactoring: diseñar y generalizar la solución
    • 🛠 ¡A practicar! Ejercicio Inside-out
  3. ⚡ Optimizando los ciclos de TDD
    • 📐 Premisa de Prioridad de Transformación (TPP): Decidiendo cuánto generalizar
    • 🔥 Premisa de Prioridad de Transformación en acción: Precios escalonados graduados
    • 👶 Pasos de bebé: La frustración de caminar despacio
    • 🛠 ¡A practicar! Ejercicio TPP
  4. 🙏 Problemas de TDD Inside-out en aplicaciones de El Mundo Real™️
    • 😬 ¡La que hemos liado! El ejemplo típico se nos va de las manos en El Mundo Real™️
    • 🤔 TDD vs BDD vs ATDD vs DDD
  5. 💁‍♂️ Outside-in TDD desarrollando una API HTTP… ¿o mejor Middle-out?
    • ☁️ Fake it Outside-in TDD: Empezando con tests E2E
    • 😶‍🌫️ Fake it Outside-in TDD: Finalizando el caso de uso
    • 🕵️ Inside-out, Outside-in o Middle-out ¿Desde dónde y hacia dónde hago TDD?
    • 🛠 ¡A practicar! Ejercicio Outside-in
  6. 🕹️ Errores comunes aplicando TDD con servicios externos: ¡SOLID al rescate!
    • 🔴 Diseñando en la fase Roja: Obtener precios desde Stripe
    • 📦 Mockear otros subsistemas: Gestión de stock
    • 📨 Demasiados mocks en el caso de uso: Event-Driven Architecture al rescate
    • 🛠 ¡A practicar! Ejercicio con mocks
  7. 🖼️ Middle-out TDD en Next.js con Cypress y Testing Library
    • ✍️ TDD desde el front-end: Formulario de alta en Next.js
    • ✅ Middle-out TDD con Cypress y Testing Library
    • 🤔 TDD en el Front-end ¿Por qué y cuándo usarlo?
    • 🛠 ¡A practicar!
  8. 🕸️ TDD en código Legacy altamente acoplado
    • 🥇 Cómo empezar a hacer TDD en código legacy: Golden master
    • 👐 Refactorizar código legacy para aplicar TDD: Estrategia Hit & Run
    • 🚀 Estrategia cuando sí merece la pena invertir en el Legacy
    • 🛠 ¡A practicar! TDD en el Legacy
  9. 👓 Enfoques alternativos y siguientes pasos
    • 🤯 Programadores FLIPADOS: Aprendiendo a modelar
    • 🤘 Estilos de TDD: Clásico vs Mockist
    • 🦉 Repaso final y siguientes pasos

Videos of the course

Related courses

See full catalogue

Pay according to your needs

lite (only monthly)

19 €
per month
  • Access to a subset of courses to lay the foundation for maintainable, scalable, and testable code
  • Company invoice
Popular

standard

24,92 €
Save 121
Annual payment of 299
per month
  • Full course catalog
  • Design and architecture challenges
  • Highlighted solutions videos for challenges
  • Receive job offers verified by Codely
  • Company invoice

premium

41,58 €
Save 89
Annual payment of 499
per month
  • Everything above
  • More benefits coming soon

We won’t increase the price while your subscription is active