Configuración de Relaciones y Pruebas Unitarias en Laravel
Clase 4 de 23 • Curso de Desarrollo en Laravel con Test Driven Development
Resumen
¿Cómo se relacionan las tablas en un proyecto Laravel?
Comenzar un proyecto en Laravel requiere establecer relaciones entre tablas, fundamentales para desarrollar una aplicación robusta. Esto se logra a través del "testing", asegurando que el método específico funcione adecuadamente. En este caso, configuraremos la relación "HasMany" para asegurar que un usuario pueda tener varios repositorios.
¿Cómo crear un archivo de prueba en Laravel?
Para establecer y probar nuestras relaciones, primero debemos crear un archivo de prueba unitario. Esto se logra con el comando de Artisan para crear un test:
php artisan make:test UserTest --unit
Dentro de este archivo configuraremos una relación de que un usuario tiene muchos repositorios. Es crucial que el título del método en el test describa claramente la función que realiza, como en este caso HasMany
.
¿Cómo instanciar un usuario y asociar repositorios?
El paso siguiente es crear un usuario y asegurarse de que puede tener múltiples repositorios. Para esto, emplearemos el método HasMany
en el modelo de usuario.
public function test_user_has_many_repositories()
{
$user = User::factory()->create();
$this->assertInstanceOf("Illuminate\Database\Eloquent\Collection", $user->repositorios);
}
Este fragmento de código verifica si el método user->repositorios
retorna una instancia de una colección de datos, es decir, múltiples repositorios.
¿Cómo crear el modelo y configurar la relación?
Ahora, debemos crear el modelo para los repositorios y configurar nuestra relación en el modelo de usuario.
- Crear el modelo de repositorio junto con su migración y fábrica:
php artisan make:model Repositorio -m -f
- Configurar la relación en el modelo
User.php
:
public function repositorios()
{
return $this->hasMany(Repositorio::class);
}
Con este código, especificamos que un usuario puede tener múltiples repositorios.
¿Qué hacer si fallan las pruebas?
Usualmente, al ejecutar tus pruebas notarás errores derivados de configuraciones faltantes o incorrectas. Asegúrate de que estás utilizando el test case correcto. Si estás utilizando Laravel, es preferible usar el test case proporcionado por Laravel que integra phpUnit y simplifica ciertas configuraciones.
php artisan test
Al correr este comando, verificamos que nuestra configuración de relación entre usuario y repositorios funcione correctamente sin errores.
Incorporar esta configuración en tus proyectos te asegura que tienes una base sólida y testeada, permitiendo un desarrollo más eficiente y fluido. ¡Sigue aprendiendo y desarrollando tus habilidades en desarrollo de software!