TDD con Laravel

Desarrollo Guiado Por Pruebas

TDD (Test-Driven Development)

Es una metodología de desarrollo de software que implica escribir pruebas para tu código antes de escribir el código en sí.

Beneficios de TDD

  • Asegurar que tu código hace lo que se supone debe hacer
  • Prevenir la introducción de errores
  • Facilitar las actualizaciones y el mantebnimiento de tu código
  • Mejorar el diseño de tu código

Ciclo de vida de TDD

  • RED: Escribes una prueba que falla.
  • GREEN: Escribes el código mínimo necesario para hacer que pase la prueba
  • REFACTOR: Refactorizas el código mientras las pruebas siguen pasando.  

Laravel y TDD ❤️

  • PHPUnit
    • Herramienta que nos permite escribir pruebas para código PHP
  • Unit Tests (Pruebas unitarias)
    • pruebas que se centran en un "unidad" de código a la vez, por lo general, una función o método de una clase.
  • Feature Tests (Pruebas de funcionalidad)
    • Pueden probar diferentes partes de tu aplicación incluida la forma en la que varios objetos interactúan entre sí o solicitudes http

Base de datos de prueba

  • Aislamiento de Datos
  • Ambiente Controlado
  • Rendimiento
  • Seguridad

Laravel te permite configurar un archivo .env.testing para una BD de pruebas

¿Testear algo que no existe?

  • Creamos y escribimos el test
  • Ejecutamos el test y falla.
  • Basado en los errores desarrollamos el código
  • Así hasta que pase toda la prueba.
  • Si es necesario refactorizamos.

¿Cómo escribir un test?

Podemos seguir el patrón

En esta fase, estableces las condiciones para la prueba; por ejemplo, podrías crear una instancia de un objeto que necesitas probar, o podrías configurar una base de datos de prueba con datos específicos que necesitas para tu prueba.

  • Arrange (Preparar)
  • Act (Actuar)
  • Assert (Afirmar)

Fase en la que realmente ejecutas el código que estás probando. esto podría ser una llamada a un método en un objeto. Podría ser una solicitud a una API o una interacción con la base de datos.

Compruebas que el sistema se comportó como esperabas después de la fase de Actuar. PHPUnit proporciona una serie de aserciones que puedes usar para comprobar cosas como si dos valores son iguales, si un objeto es de un tipo específico, si una base de datos contiene ciertos valores, etc.

PROS

  • Mejora de la Calidad del Código
  • Refactorización Confiable
  • Documentación Viva
  • Reducción de Tiempos de Depuración

CONTRAS

  • Velocidad de Desarrollo
  • Mantenimiento de las Pruebas
  • Requiere Disciplina
  • Dificultades con Código Legado

FIN

Sígueme en redes sociales: youdevs

Made with Slides.com