Curso de testing en PHP con PHPUnit

Aprende a desarrollar tests unitarios en PHP con el framework PHPUnit
Inscripciones abiertas
Intermedio
22 Clases 7 h (aprox.)
89€
65€
Precio en promoción

Próxima clase

Martes 14 de enero

h

Añadir a Google Calendar

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.

Qué aprenderé en el Curso de testing en PHP con PHPUnit

  • Instalación y configuración del entorno para trabajar con PHPUnit
  • Desarrollar pruebas unitarias sobre clases PHP a partir de numerosos ejemplos
  • Pruebas de excepciones
  • Uso de Data Providers
  • Uso de varios tipos de dobles, mock, stub, fake
  • Cómo las pruebas nos abren técnicas como el refactoring
  • Cómo medir la cobertura de nuestras pruebas

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

Presentación del curso de PHPUnit

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.

Entorno de desarrollo

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.

Primeros tests unitarios con 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).

Comando phpunit y alias

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.

Método setUp() y tearDown()

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.

Configuración de las pruebas con phpunit.xml

Vemos cómo se crea y personaliza el archivo de configuración de las pruebas phpunit.xml.

Data providers de PHPUnit

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.

Atributos de PHP y PHPUnit

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.

Aserciones en PHPUnit

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.

Aserciones para arrays

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.

Comprobación de excepciones

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.

Refactoring

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.

Dobles y diseño del software

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.

Añadir a Google Calendar
Dobles en PHPUnit con createMock()

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.

Añadir a Google Calendar
Dobles en PHPUnit con createStub()

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.

Añadir a Google Calendar
Expectations en Mocks

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.

Añadir a Google Calendar
Cobertura de los tests en 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.

Añadir a Google Calendar
Resumen de dobles

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.

Añadir a Google Calendar
Ejemplos de tests con bases de datos

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.

Añadir a Google Calendar
Ejemplos de pruebas de validación en modelos

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.

Añadir a Google Calendar
Cómo automatizar las pruebas con GitHub Actions

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.

Añadir a Google Calendar
Cómo proteger la rama main evitando commits cuyas pruebas hayan fallado

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.

Añadir a Google Calendar
¿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.

Suscríbete