Cuando desarrollamos debemos asegurarnos que las clases y métodos que creamos funcionen correctamente, por lo tanto, es necesario probar siempre el código escrito pero en algunos casos no es tan fácil o resulta una tarea tediosa de hacer de forma manual. En la lección de hoy te explicaremos cómo desarrollar usando pruebas automatizadas con PHPUnit en minutos.

Notas

Por Clemir Rondón.

En este curso trabajamos con la clase Str para convertir cadenas como por ejemplo de full_name a FullName durante las lecciones sobre métodos mágicos en PHP, es decir, a partir de la lección Uso de los métodos mágicos __get, __set, __isset y __unset con PHP sin embargo, en ese momento no nos detuvimos a ver detalladamente cómo estaba desarrollada.

La función de PHP ucfirst convierte el primer carácter de una cadena a mayúsculas.

Para crear pruebas podemos hacer uso del componente PHPUnit que podemos instalar con Composer como vimos en la lección anterior de esta manera agregando al composer.json:

Lo agregamos en la opción require-dev puesto que es un componente que solo necesitamos durante el desarrollo del proyecto.

y luego ejecutamos composer update en la consola para que se instale.

El siguiente paso es crear el directorio tests en la raíz del proyecto donde colocaremos las clases que se encargarán de probar el código automáticamente. Además, estas clases deben extender de la clase PHPUnit\Framework\TestCase del componente PHPUnit

Para correr las pruebas ejecutamos en consola:

donde tests/ es el directorio donde le indicamos a PHPUnit que busque las pruebas a ejecutar. Adicionamente, puedes agregar alguna otra opción disponible como por ejemplo –colors para indicar que el resultado use colores.

Las Aserciones o Assertions son un conjunto de métodos que nos permiten ejecutar las pruebas de una mejor manera y proporcionando  resultados con mayor información sobre la ejecución de prueba.

En PHPUnit disponemos de un gran conjunto de aserciones que podemos ver en su documentación oficial. Para esta lección usamos el método assertSame() que acepta como argumentos el valor esperado, el valor que está produciendo nuestro código y opcionalmente un mensaje que se mostrará en caso que falle la aserción.

Se recomienda que cada método que creamos en una clase de prueba tenga un nombre descriptivo de lo que se está evaluando, así como el nombre de la clase.

Con la función de PHP ucwords podemos convertir a mayúsculas el primer carácter de cada palabra de una cadena y con la función str_replace reemplazamos todas las apariciones de la cadena que enviamos como primer argumento con la cadena de reemplazo que enviamos como segundo argumento en la cadena a evaluar enviada como tercer argumento.

Bien, con esta lección culminamos el curso Curso de programación orientada a objetos con PHP esperamos que hayas disfrutado del contenido y te invitamos a continuar preparándote con el Curso de creación de componentes para PHP y Laravel donde aprenderás a crear tus propios componentes y conocerás temas más avanzados como la inyección de dependencias, patrones de diseño, el uso de pruebas unitarias, entre otros.

Material relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Instalación y uso de componentes de terceros con Composer Lección siguiente Array Access en PHP - Parte 1