©2025 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
Curso de testing en PHP con PHPUnit
Aprende a desarrollar tests unitarios en PHP con el framework PHPUnit
Inscripciones abiertas
Próxima clase
La creación de tests es un pilar fundamental del desarrollo moderno de software. No solo permite garantizar que el código sea más robusto y confiable, sino también facilita prácticas esenciales como el refactoring, la integración continua y el despliegue continuo. Adoptar una estrategia de testing ideal para crear código mantenible en proyectos de cualquier tamaño.
En EscuelaIT hemos abordado en muchas ocasiones la disciplina de testing, aportando mucho conocimiento de base para poder entender cómo se desarrollan los test, junto con toda la teoría relacionada con esta práctica. Un curso ideal para profundizar en ello es el Curso de Pruebas del Software.
Tenemos diversos cursos adicionales en el catálogo, pero todavía no habíamos cubierto específicamente el testing en PHP. Es por ello que vamos a abordarlo con el framework para pruebas más popular existente en este lenguaje: PHPUnit.
En EscuelaIT hemos abordado en muchas ocasiones la disciplina de testing, aportando mucho conocimiento de base para poder entender cómo se desarrollan los test, junto con toda la teoría relacionada con esta práctica. Un curso ideal para profundizar en ello es el Curso de Pruebas del Software.
Tenemos diversos cursos adicionales en el catálogo, pero todavía no habíamos cubierto específicamente el testing en PHP. Es por ello que vamos a abordarlo con el framework para pruebas más popular existente en este lenguaje: PHPUnit.
Qué aprenderé en el Curso de testing en PHP con PHPUnit
Objetivos del curso
Explicar a los programadores en PHP, de manera práctica y a través de numerosos ejemplos, cómo realizar sus pruebas del software usando PHPUnit. Abordaremos las utilidades que nos ofrece el framework para desarrollar los tests de manera sencilla y eficiente, como los distintos asserts, data providers, preparación de las pruebas o el uso de dobles, sin olvidarnos de buenas prácticas y la aplicación de técnicas como el refactoring.
Por qué debes aprender Testing en PHP
Aprender pruebas del software es esencial para dominar las disciplinas de desarrollo de software moderno y nos permite subir un escalón fundamental en nuestro nivel como desarrollador.
En este curso aprenderemos a trabajar con PHPUnit, de modo que puedas saber cómo se implementan las pruebas en PHP. Además veremos cómo diseñar correctamente las pruebas con las herramientas que nos ofrece el framework.
Qué tengo que saber
Este es un curso específico de PHPUnit. Es muy práctico y aunque mencionaremos aspectos de la teoría de la disciplina de pruebas del software, pasaremos por encima sobre los distintos conceptos. Por ello es importante tomar antes el Curso de Pruebas del Software de EscuelaIT con Luis Fernández.
Obviamente, también hay que tener un buen control del lenguaje PHP y la programación orientada a objetos
Clases y contenidos
En esta presentación del Curso de PHPUnit veremos los objetivos, el enfoque práctico y cuáles son las referencias a otros cursos recomendados para adquirir conocimientos teóricos fundamentales de Pruebas del Software, que iremos abordando por medio de ejemplos en el framework de pruebas de PHP.
En este vídeo vamos a montar un proyecto PHP desde cero, creando una estructura de carpetas básica, con sus espacios de nombres (namespaces de PHP) para el código de test y el código de producción. Además veremos la instalación del propio PHPUnit.
En este vídeo vamos a realizar las primeras prácticas de tests unitarios, usando el framework PHPUnit. Realizaremos un enfoque basado en TDD, de modo que construiremos primero las pruebas y luego el código que queremos probar. Este mismo enfoque de TDD lo realizaremos a lo largo de todo el curso. Además veremos cuáles son los elementos principales de toda prueba (Given // When // Then) o (Arrange // Act // Assert).
A continuación vamos a ver cómo utilizar el comando phpunit indicando diversas configuraciones por medio de flags. También explicaremos cómo podemos crear un alias del comando para no tener que repetir todo el tiempo la ruta del ejecutable de PHPUnit.
El método setUp() de PHPUnit nos permite definir las acciones que queremos realizar para preparar todos los test de una clase de casos de test. También analizaremos el método tearDown() con el cual conseguimos deshacer cualquier tipo de acción después de los casos de test.
Vemos cómo se crea y personaliza el archivo de configuración de las pruebas phpunit.xml.
Mediante los Data providers podemos definir conjuntos de datos sobre los cuales queremos realizar los tests. De este modo podemos declarar los datos de los test y los expectations en un mismo lugar, alimentando un método que se ejecutará por cada uno de los elementos del data provider, lo que nos ahorra gran cantidad de código prácticamente duplicado.
Los atributos son una nueva característica de PHP con la que podemos decorar elementos de software, introduciendo de una manera cómoda configuraciones declarativas en el código. Veremos como PHPUnit nos ofrece la posibilidad de decorar los métodos para indicar diversas configuraciones.
En este primer vídeo dedicado a acepciones vamos a profundizar un poco entre los métodos disponibles para hacer asserts con el framework PHPUnit.
Vamos a ver una segunda tanda de aserciones disponibles en PHPUnit para conseguir comprobar los estados de los arrays. Dejando claro que estas son unas de las muchas aserciones que dispone el framework.
Nuestros test también pueden, y deben, verificar que bajo ciertas circunstancias las clases van a levantar excepciones. Veremos algunos ejemplos en los cuales verificaremos que se levanta la excepción, que ésta es de un tipo de terminado, incluso que el mensaje recibido en la excepción es el que debe de ser.
Aunque tenemos un curso completo de Refactoring en EscuelaIT, en este vídeo vamos a ver cómo sería esa técnica y el modo en el que las pruebas nos permiten la red de seguridad necesaria para cambiar el diseño del software, sin modificar su funcionalidad, sabiendo que las clases seguirán funcionando correctamente.
Este es el primero de los vídeos dedicados a dobles de pruebas. Explicaremos que son los dobles de manera general y cómo el código que debemos de probar debe tener un diseño adecuado para poder implementar las técnicas de dobles. Veremos cómo se puede realizar la Inversión de Dependencias propuesta por SOLID y cómo inyectar la dependencia mediante el constructor. Esto lo veremos con un ejemplo sencillo que luego usaremos para poder implementar los dobles.
En este vídeo vamos a ver el primero de los métodos para crear dobles utilizando el framework PHPUnit. Veremos cómo usar createMock() para crear un doble de tipo dummy.
En este vídeo vamos a conocer un segundo método para crear dobles de pruebas en PHPUnit. Veremos como usar createStub() para crear un doble de tipo Stub.
En este vídeo vamos a aprender a crear un tipo de doble de pruebas del software llamado Mock. Para realizar este tipo de doble necesitamos configurar las expectations sobre el método createMock() de PHPUnit.
Cómo podemos obtener los porcentajes de cobertura de tests en PHPUnit. Veremos el proceso de configuración de Xdebug para usarlo para el cálculo de la cobertura de test en PHPUnit. Veremos cómo configurar el sistema para que nos genere un informe completo de la cobertura de pruebas que tenemos en nuestro proyecto.
En este último vídeo dedicado a los dobles de pruebas unitarias en PHPUnit vamos a realizar un resumen general que nos permita entender de manera global todo el panorama de los dobles. Veremos además cuáles son los casos de uso de los dos métodos para creación de dobles, createMock() y createStub(), de modo que sepamos perfectamente cuando usar uno u otro.
En este vídeo vamos a ver unos ejemplos de casos de test que involucran bases de datos. En vez de dobles vamos a usar una base de datos SQLite en memoria. Implementaremos el mismo principio de Inversión de Dependencias para poder enviarle una conexión con base de datos distinta en las pruebas y en el código de producción.
Vamos a ver cómo gestionar unas validaciones simples en el modelo que trabajaba con la base de datos y cómo podemos probar que ciertos métodos, si los llamamos con datos incorrectos, nos devuelven los correspondientes errores de validación.
Un ejemplo de creación de un Action dentro de GitHub que nos permite ejecutar las pruebas después de hacer un commit en la rama main. Veremos cómo configurar el sistema de CI/CD de GitHub para que las pruebas se corran con cada actualización del repositorio Git.
En este vídeo veremos cómo proteger la rama main del repositorio. Esto nos permite asegurarnos que las pruebas han sido ejecutadas de manera exitosa antes de incorporar cambios en la rama main.
¿Conoces nuestra tarifa plana?
Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.