Testing de Carga de Archivos en Laravel
Clase 9 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 configurar un test para subir archivos en Laravel?
Comprender cómo probar y verificar la carga de archivos en una aplicación web es crucial. Este tutorial te guiará a través del proceso de configuración de un test unitario en Laravel para simular la carga de un archivo, específicamente una imagen. Con este conocimiento, podrás garantizar que tu aplicación maneje correctamente las cargas de archivos antes de implementarla en producción.
¿Cómo crear el test inicial?
El punto de partida es la creación de un archivo de test que validará si la carga de archivos se realiza correctamente. Aquí se utilizan las herramientas ofrecidas por Laravel, lo que permite enfocarse en la lógica de negocio en vez de en configuraciones complejas.
php artisan make:test ProfileTest
Al ejecutar este comando, se generará un archivo de test llamado ProfileTest.php. El objetivo es verificar si se puede cargar una imagen satisfactoriamente.
¿Cómo simular la carga de una imagen?
Para emular la subida de una imagen, utilizaremos las funcionalidades proporcionadas por Laravel. A continuación, se configuran las clases necesarias:
use Illuminate\Support\Facades\Storage;
Storage::fake('local');
Esta línea indica que vamos a utilizar una configuración falsa de almacenamiento para las pruebas. Así, tus pruebas no afectarán la configuración real de almacenamiento.
¿Cómo enviar una solicitud POST simulada?
Cuando cargamos un archivo al servidor, normalmente utilizamos una solicitud POST. Podremos simular este comportamiento en nuestros tests.
$response = $this->post('/profile', [
'foto' => UploadedFile::fake()->image('foto.jpg')
]);
Aquí, estamos simulando el envío de una imagen denominada foto.jpg vía una solicitud POST a la ruta /profile.
¿Cómo verificar la existencia del archivo?
Un aspecto clave es confirmar que el archivo fue realmente almacenado. Para ello, puedes hacer lo siguiente:
Storage::disk('local')->assertExists('profiles/' . $foto);
Este bloque de código revisa si el archivo de imagen existe dentro del directorio profiles.
¿Cómo manejar las redirecciones en los tests?
Al considerar la experiencia del usuario, querrás que, después de cargar un archivo, el sistema redirija al usuario a una vista específica. También deberás verificar esto en tus pruebas.
$response->assertRedirect('/profile');
Este comando confirma que la aplicación redirige correctamente a /profile tras completar la carga.
¿Cómo configurar las rutas necesarias?
Para que todo funcione, deberás configurar las rutas en el archivo web.php de Laravel:
Route::get('/profile', function () {
return view('profile');
});
Route::post('/profile', function (Illuminate\Http\Request $request) {
$request->file('foto')->store('profiles');
return redirect('/profile');
});
Esta configuración incluye una ruta POST para manejar la carga de imágenes y una redirección a la ruta GET.
¿Qué sucede al ejecutar el test?
Luego de haber configurado todo lo anterior, es momento de ejecutar el test para asegurarnos de que funciona como se espera.
php artisan test
Este comando ejecutará todas las pruebas y debería confirmar que la carga de archivos se realiza adecuadamente.
Siéntete motivado a seguir experimentando y aprendiendo más sobre las funcionalidades de Laravel. Cada paso que des te acercará más a convertirte en un experto desarrollador. Continúa creando, probando e implementando con confianza.