Pruebas de Datos en Bases de Datos con PHP y Laravel
Clase 13 de 24 • Curso Básico de Testing con PHP y Laravel
Contenido del curso
- 5

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

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

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

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

Testing de Carga de Archivos en Laravel
08:49 - 10

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

Refactorización y Testing en Proyectos de Programación
04:49 - 12

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

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

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

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

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

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

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

Eliminación de registros en base de datos con Laravel
06:00 - 20

Validación
03:16 - 21

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

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

Pruebas Unitarias en PHP: Creación y Verificación de Campos Virtuales
05:58
¿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=sqliteyDB_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!