Testing de Formularios en PHP: Creación y Validación de Vistas
Resumen
¿Cómo configurar visualmente el entorno de desarrollo?
Al adentrarnos en el fascinante mundo de la programación, la visualización desde el navegador resulta clave para un desarrollo exitoso. Aunque esta clase se centra en la configuración correcta a nivel de programación, es vital entender cómo cada ajuste impacta en lo que veremos visualmente. En este espacio aprenderás a armar un formulario de creación que será pieza clave en nuestras vistas futuras.
¿Cómo construir un formulario de creación?
Comencemos con el testing adecuado de nuestro formulario de creación. Con nuestro editor abierto, dirigimos la atención al archivo ControllerTest y, al final de este, podemos iniciar con una estructura básica. La meta es asegurar que la vista de creación obtenga el status 200 del servidor, lo cual indica que la ruta funciona correctamente.
La lógica detrás de la organización del controlador es simple: facilitar futuras actualizaciones y mejoras. Colocamos el método de creación antes del de guardar, de modo que el código se mantenga lógico y ordenado.
publicfunctioncrear(){returnview('crear');}
¿Cómo diseñar la vista de creación?
Continuamos creando el archivo para nuestra vista en la carpeta de vistas y repositorios del proyecto: crear.blay.php. Aprenderás a repetir elementos del formulario pero asegurando que cada campo se configure correctamente.
Hemos visto cómo las pruebas aseguran un código limpio y funcional. Ejecutando php artisan test, verificamos que nuestro código funcione correctamente y cualquier error o detalle en el controlador, como la falta de un punto y coma, se detecta de inmediato.
php artisan test
¿Qué hacer si las pruebas fallan?
Si al ejecutar las pruebas notas que esperabas un status 403 pero recibes un 500, es momento de revisar el código. Puede ser un simple punto y coma o detalles en la configuración que necesiten atención. No temas a los errores, aprovecha esta oportunidad para perfeccionar tu código y asegurar su calidad.
Mantener un código de calidad antes de subirlo al servidor es crucial. Las pruebas no solo ahorran tiempo y recursos, sino que aseguran que presentemos un producto sólido y libre de errores. No olvides que la programación es un constante ciclo de mejora y aprendizaje. ¡Ánimo, y sigue programando con pasión y precisión!
Para visualizar mejor los errores se puede agregar esta línea al inicio de la función del test:
$this->withoutExceptionHandling();
Ejemplo:
publicfunctiontest_create(){ $this->withoutExceptionHandling(); #oculta la excepción del test
$user =User::factory()->create(); $this->actingAs($user)->get('repositories/create')->assertStatus(200);}
Como usuario nos dirigimos a la ruta de creación del modelo Repositorio y obtenemos status 200. Para que pase el test hay que crear el método create en el Controller y luego la vista que pide le método:
Bien pero no me gusto que no diera el ejemplo de como validar la interfaz, por lo que entiendo también podemos validar si los campos están correctos es decir el nombre del label o del botón, se que es algo practico y sencillo pero la idea es tener un standar para luego ampliar nuestro conocimiento. Dejo un Ejemplo, pero no se si esta bien??? agradezco cualquier sugerencia.
publicfunctiontest_create(){ $user =User::factory()->create(); $this->withoutExceptionHandling();//Sin hay alguna Exception la deja pasar de lo contrario usamos withExceptionHandling $this->actingAs($user)->get('repositories/create')//Vamos a la ruta->assertSee('Repositorios')//Valido titulo del form->assertSee('URL')//Valido label primer campo ->assertSee('Description')//Valido label segundo campo ->assertSee('Crear')//Valido nombre del boton ->assertStatus(200);//Valida si conecta a la vista-> si la vista no esta creada te genera error 500}