Introducción

1

Desarrollo de Aplicaciones en Laravel con TDD y PHP Unit

2

Desarrollo de Proyectos con TDD en Laravel y Testing PHP

Proyecto

3

Instalación y configuración inicial de proyectos en Laravel

4

Configuración de Relaciones y Pruebas Unitarias en Laravel

5

Configuración de Relaciones en Laravel usando Testing

6

Protección de Rutas en Laravel con Middleware de Autenticación

7

Pruebas Automatizadas para Registro y Redirección en Base de Datos

8

Configuración de Actualización de Registros con Pruebas en PHP

9

Validación de Datos en Controladores: Configuración y Pruebas

10

Eliminación de Registros en Base de Datos con PHP y Tests

Póliticas de Acceso

11

Configuración de Políticas de Acceso en Repositorios

12

Políticas de Acceso y Eliminación de Repositorios en PHP

13

Configuración de Acceso a Repositorios Propios en Aplicaciones Web

14

Configuración del Método Show en Controladores PHP

Vistas del proyecto

15

Formulario de Edición con Diseño y Tests en Laravel

16

Testing de Formularios en PHP: Creación y Validación de Vistas

17

Configuración de Controladores y Vistas en Laravel para el Área Pública

18

Diseño Web con Tailwind CSS: Mejora de Apariencia y Formato

19

Pruebas y Configuración de Seeders en Proyectos Laravel

Refactorización

20

Refactorización de Código con Validación en PHP

21

Refactorización de Políticas de Acceso en Laravel

22

Configuración de Botones para Repositorios en Proyectos Web

Conclusión

23

Importancia de las Pruebas en Desarrollo de Software

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Configuración de Actualización de Registros con Pruebas en PHP

8/23
Recursos

¿Cómo configurar la actualización de registros de manera exitosa?

Cuando se trata de programar, la capacidad de actualizar registros de manera efectiva es esencial. Esta guía te ayudará a configurar tu entorno de trabajo y a comprender los pasos necesarios para realizar una actualización mediante un formulario. A continuación, exploramos el proceso que sigue el servidor al trabajar con datos, actualizar, y redireccionar adecuadamente.

¿Cómo inicializar el entorno de desarrollo para la actualización?

Para iniciar la configuración de actualización, se debe contar con un repositorio previamente creado. En este sentido, es crucial entender que el registro a modificar ya existe en el sistema. Aquí se sugieren unos pasos básicos:

  1. Crear el repositorio inicial: Este servirá como base de datos de prueba para las actualizaciones.
  2. Configurar las rutas protegidas: Asegúrate de ser un usuario autenticado al interactuar con el repositorio.
  3. Utilizar método PUT para actualizar: Cambia las comillas simples por dobles si planeas usar variables dinámicas.

¿Qué pasos seguir para actualizar un registro?

Una vez preparado el entorno, en el archivo de configuración, distinguimos entre los métodos de almacenamiento y de actualización. El siguiente código muestra el procedimiento de mapeo para actualizar:

public function update(Request $request, $id)
{
    $repository = Repository::find($id);
    $repository->update($request->all());
    return redirect()->route('repositories.edit', $repository->id);
}

Este código de PHP ilustra cómo recibir un request, hallar el repositorio por su ID y actualizarlo utilizando los datos proporcionados. Importante recordar la importación de las entidades utilizadas.

¿Cómo probar y verificar la actualización?

Probar correctamente tu código garantiza que funcione como se espera. Utiliza el comando php artisan test para ejecutar los tests y verificar la integridad de la aplicación. A continuación, visualiza cómo revisar de manera efectiva los errores comunes y corregir fallas:

  1. Errores Comunes: Las configuraciones incorrectas de redirección (por ejemplo, redirigir a una vista inexistente) pueden causar errores 500.
  2. Debugging Detallado: Implementa dd() para inspeccionar variables y dirigir la resolución de problemas.
  3. Comprobación de Importaciones: Un error frecuente es olvidar importar la clase necesaria, lo que resulta en fallas a nivel de controlador.

¿Cómo asegurar la funcionalidad a futuro?

Más allá de resolver el problema inmediato, implementar tests para cada funcionalidad creada ofrece seguridad a largo plazo. Esto no solo valida su correcto funcionamiento en el presente, sino que se convierte en una salvaguarda durante futuras modificaciones del código.

En resumen, al automatizar y probar eficientemente estas configuraciones, estás cimentando un desarrollo sólido y fiable. Sigue explorando y solucionando con confianza, ya que cada desafío se convierte en una oportunidad de aprendizaje.

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El test está ahí para ayudarnos a corregir esos errores que tenemos en nuestros códigos, sin embargo, siempre está bien prevenirlos, por eso recomiendo mucho que instalen la extensión PHPIntelliSense y la extensión PHPIntellephense para Visual Studio Code, ya que con esa dos extensiones se pueden poner los use de forma automática y así te olvidas de tener que importarlos 😄

php artisan test
php artisan test --filter test_update

Modificados:

  • tests/Feature/Http/Controllers/RepositoryControllerTest.php
    • test_update
  • app/Http/Controllers/RepositoryController.php

Test:

  • Enviar HTTP-Put Actualizando usuario, validar la redirección y validar la presencia de los nuevos datos en la base de datos

Errores:

  • Faltar importar Repository

A mi me ayudo mucho agregar esta linea en el metodo de mi test $this->withoutExceptionHandling(); te da a más detalle el error, tenia un error porque le agregue a ->put(“repositories/$repository->id/edit”, $data) y con $this->withoutExceptionHandling(); me salia que The PUT method is not supported for this route. Supported methods: GET, HEAD. y lo comprobe con php artisan r:l y efectivamente tenia razón, si esto pasaria viendo el navegador me pasaria seguro horas tratando de ver donde es el error.

Adjunto mi commit de esta clase y la anterior para quien se haya perdido o el que no quiera hacer la practica

https://github.com/jlbousing/practica-tdd/commit/8dae98ed904bead581cf017883c59133f1d04959

Laravel 9 permite hacer el uso del helper fake

Les recomiendo aparte de PHPIntelliSense para visual studio pueden usar el editor phpStorm que ya viene con todo eso instalado

El video no concuerda con la velocidad del audio, a alguien más le pasa?