Contenido del curso
Conceptos
- 5

Verificación de Resultados en Pruebas Unitarias con PHPUnit
07:09 min - 6

Testing de Helpers en PHP con PHPUnit
07:26 min - 7

Pruebas Unitarias en Laravel: Mutadores y Campos Virtuales
08:29 min - 8

Pruebas de Métodos Personalizados en PHP con Laravel
04:56 min - 9

Testing de Carga de Archivos en Laravel
08:48 min - 10

Creación de Formulario HTML para Carga de Imágenes en Servidor
04:47 min - 11

Refactorización y Testing en Proyectos de Programación
Viendo ahora - 12

Validación de Formularios y Testing en Laravel
06:12 min - 13

Pruebas de Datos en Bases de Datos con PHP y Laravel
08:41 min
Proyecto
- 14

Metodología TDD en PHP: Creación y Pruebas Efectivas
04:37 min - 15

Desarrollo de un Proyecto Sencillo con Enfoque en Testing
01:34 min - 16

Pruebas HTTP en PHP con Artisan y Base de Datos
08:48 min - 17

Test de Visualización de Datos en Tabla de Etiquetas
05:36 min - 18

Configuración de Pruebas Unitarias para Crear Registros en Laravel
07:35 min - 19

Eliminación de registros en base de datos con Laravel
05:59 min - 20

Validación
03:16 min - 21

Pruebas de Funcionalidad de Etiquetas en Laravel desde el Navegador
05:25 min - 22

Mejorando el Diseño de Proyectos con Tailwind CSS
06:37 min - 23

Pruebas Unitarias en PHP: Creación y Verificación de Campos Virtuales
05:58 min
Conclusión
Refactorización y Testing en Proyectos de Programación
Resumen
Cuando programas con confianza, sabes que cada cambio en tu código está respaldado por pruebas que verifican su correcto funcionamiento. La refactorización es precisamente eso: reorganizar y mejorar tu código sin alterar el comportamiento esperado, asegurándote de que tus tests sigan pasando en verde.
¿Qué significa refactorizar sin modificar las pruebas?
La refactorización consiste en alterar el código fuente sin tocar las pruebas existentes [0:12]. Ya sabemos que nuestro testing funciona correctamente. Como programadores, el objetivo es lograr una mejor organización del código, pero las pruebas deben seguir obteniendo resultados positivos. Si algo se rompe, los tests nos lo indican de inmediato.
Esto garantiza algo fundamental: no hemos roto ninguna parte del programa. En lugar de verificar manualmente cada funcionalidad en el navegador, confiamos en un sistema automatizado que actúa como un pequeño robot revisando todo por nosotros [2:28].
¿Cómo se aplica la refactorización en un proyecto Laravel?
El ejemplo práctico parte de mover lógica que estaba directamente en las rutas hacia un controlador dedicado. El proceso se desarrolla así:
- Se crea un nuevo controlador con
php artisan make:controller ProfileController[0:43]. - Se corta el código existente en el archivo de rutas.
- Se configura la ruta para apuntar al nuevo controlador usando la referencia
App\Http\Controllers\ProfileController::classcon el método correspondiente [1:10].
¿Qué sucede cuando las pruebas fallan tras el cambio?
Al ejecutar los tests después de mover el código, las pruebas se rompen [1:34]. El sistema indica que no encuentra el archivo esperado y que la afirmación devuelve falso. Este momento es clave: los tests están cumpliendo su función al alertarnos de que algo falta en nuestra nueva configuración.
El error en este caso fue no haber creado el método dentro del controlador. Una vez que se define el método que recibe el request, sube la foto y redirecciona a profile [2:08], los tests vuelven a pasar correctamente.
¿Por qué los tests validan que no se dañó nada?
Al ejecutar nuevamente las pruebas y obtener verde [2:18], confirmamos que:
- El código fue reorganizado en un archivo nuevo.
- La funcionalidad permanece intacta.
- No se modificó ni una sola línea del test original.
¿Cuándo cobra mayor importancia el testing en proyectos reales?
Imagina un sistema con mil funciones y necesitas modificar una de ellas [2:48]. Ejecutar todos los tests te permite verificar que el resto del sistema sigue funcionando sin problemas. Esto es especialmente valioso cuando enfrentas escenarios como realizar múltiples mejoras antes de una entrega.
Sin tests, presentar un proyecto al cliente genera incertidumbre: no sabes si algún cambio pudo haber afectado otra parte del sistema [3:04]. Con pruebas automatizadas, cada luz verde te da la confianza necesaria para entregar sabiendo que todo funciona correctamente.
La próxima vez que reorganices tu código, recuerda que la refactorización no se trata solo de escribir mejor, sino de demostrar con evidencia que nada se ha roto. ¿Has tenido alguna experiencia donde los tests te salvaron de un error inesperado? Comparte tu historia.