Pruebas de Datos en Bases de Datos con PHP y Laravel
Clase 13 de 24 • Curso Básico de Testing con PHP y Laravel
Resumen
¿Cómo testear datos desde una base de datos en Laravel?
Testear datos en una base de datos es crucial para asegurar que nuestras aplicaciones funcionen correctamente. En este contexto, vamos a explorar cómo realizar pruebas sobre las bases de datos utilizando Laravel. Aprenderemos cómo crear clases de prueba, cómo configurar el entorno de testing y ejecutar los test de manera efectiva.
¿Cómo iniciar una clase de test en Laravel?
Comenzamos creando una clase de prueba específica para verificar los elementos de nuestra base de datos. Podemos hacerlo utilizando el siguiente comando de Artisan:
php artisan make:test UserTest --unit
Una vez creado, encontramos la nueva clase dentro de la carpeta tests/Unit
, con el patrón de nombre UserTest
. Este archivo nos permite configurar las pruebas que deseamos realizar sobre el modelo en cuestión.
¿Cómo asegurarnos de que los datos existan en la base de datos?
Para verificar que cierto dato exista en la base de datos durante nuestros test, podemos usar el método assertDatabaseHas
. Este método nos sirve para confirmar que un registro con campos específicos está presente en la base de datos. Veamos un ejemplo en el que comprobamos si existe un usuario con un email específico:
$this->assertDatabaseHas('users', [
'email' => 'admin@example.com'
]);
¿Cómo configurar el entorno de pruebas sin afectar la base de datos real?
Es imperativo no modificar nuestra base de datos real durante las pruebas. Por lo tanto, debemos configurar una base de datos para pruebas (en memoria) utilizando SQLite. Esta configuración se realiza en el archivo phpunit.xml
:
- Descomentamos o agregamos las líneas relativas a SQLite.
- Configuramos para usar
DB_CONNECTION=sqlite
yDB_DATABASE=:memory:
que permiten realizar pruebas sobre una base de datos temporal.
Esta configuración garantiza que cualquier cambio temporal realizado durante las pruebas no tendrá efecto en los datos reales.
¿Cómo ejecutar los test y resolver errores comunes?
Después de preparar nuestras pruebas y configurar adecuadamente el entorno, ejecutamos nuestros test usando el siguiente comando de Artisan:
php artisan test --filter=UserTest
Si encontramos errores, como que las pruebas no se ejecutan, es posible que se deba a que el entorno no estaba correctamente configurado o se olvidó guardar algunos cambios importantes en los archivos de prueba.
Al enfrentarnos con estos problemas, es útil:
- Verificar que todos los archivos están guardados.
- Revisar que la configuración del entorno de pruebas esté descomentada.
- Comprobar que el nombre de los test cases coincida adecuadamente con la definición en nuestros archivos de pruebas.
¿Cómo simular datos para testing?
En algunas ocasiones, necesitamos crear datos ficticios para simular los escenarios de prueba. Laravel proporciona el uso de factories
para generar estos datos. Puede hacerse de la siguiente forma:
User::factory()->create([
'email' => 'test@admin.com'
]);
Se asegura, así, que el correo electrónico test@admin.com
exista para las pruebas, permitiéndonos verificar la existencia de registros específicos.
Testear adecuadamente los datos en una base de datos no solo mejora la calidad del software, sino que también garantiza que los usuarios finales experimenten un funcionamiento correcto y sin errores. ¡Continúa aprendiendo y profundizando en estos temas para convertirte en experto en Laravel!