Validación de Formularios y Testing en Laravel
Clase 12 de 24 • Curso Básico de Testing con PHP y Laravel
Contenido del curso
Conceptos
- 5

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

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

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

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

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

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

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

Validación de Formularios y Testing en Laravel
Viendo ahora - 13

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

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

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

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

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

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

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

Validación
03:16 min - 21

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

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

Pruebas Unitarias en PHP: Creación y Verificación de Campos Virtuales
05:58 min
Conclusión
¿Cómo evitar errores al enviar formularios sin archivos?
En el desarrollo de aplicaciones web, es común encontrar formularios que requieren la subida de archivos. ¿Qué sucede si un usuario intenta enviar un formulario sin un archivo, pero el servidor espera uno? Esto podría generar errores en la aplicación. Por lo tanto, es crucial implementar validaciones adecuadas para asegurarnos de que los formularios se envíen con los datos necesarios. Aquí te explicamos cómo configurar una validación de archivo requerido, empleando pruebas automatizadas para verificar su efectividad.
¿Cómo configurar la validación?
Para comenzar, configuramos la validación en el archivo de testing correspondiente. Imagina que trabajamos en un archivo llamado profile_test.php. Un error común es presionar "enviar" sin haber seleccionado una imagen. Por lo tanto, necesitamos crear un método que verifique la presencia del archivo.
Aquí te mostramos cómo puedes estructurarlo:
public function test_foto_requerida()
{
$response = $this->post('/profile', ['foto' => '']);
$response->assertSessionHasErrors(['foto' => 'required']);
}
En este fragmento de código, estamos asegurándonos de que, si el campo foto está vacío, se genere un error de sesión indicando que la foto es obligatoria.
¿Dónde y cómo realizar la validación?
La validación se realiza en el controlador, específicamente utilizando el método validate proporcionado por Laravel. Aquí configuramos el campo foto como requerido:
$request->validate([
'foto' => 'required'
]);
¿Cómo visualizar los errores en el navegador?
Además de validar del lado del servidor, es esencial que los usuarios vean los errores al instante. Para ello, se puede utilizar una técnica en la vista para recorrer y mostrar los errores:
@if($errors->any())
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
Con este fragmento de código HTML, aseguramos que cualquier error de validación será mostrado al usuario, mejorando la experiencia del usuario al clarificar el motivo del error.
¿Por qué es importante realizar pruebas?
Probar nuestras validaciones es fundamental para asegurar que no afecten la funcionalidad de la aplicación. Mediante la prueba test_foto_requerida, verificamos que la validación funciona correctamente y se despliegue un error cuando la foto no se suministra. Aparte, ejecutar todos los tests garantiza que las nuevas validaciones no rompan funcionalidades anteriores.
La práctica de implementar validaciones junto con sus pruebas no solo mejora la calidad de nuestro código, sino que ofrece robustez y tranquilidad al saber que nuestras aplicaciones están bien preparadas para manejar entradas del usuario de manera segura y efectiva. Recuerda, cada paso cuenta en el camino hacia un desarrollo más profesional. ¡Sigue adelante y sigue aprendiendo!