馃И Testing b谩sico en Laravel

馃И Testing b谩sico en Laravel

Laravel incluye una potente herramienta de testing automatizado que permite verificar el correcto funcionamiento de tu aplicaci贸n, garantizando estabilidad, seguridad y calidad del c贸digo. Las pruebas pueden ser de unidad, integraci贸n o funcionales.

馃攳 ¿Por qu茅 hacer testing?

- Detecta errores antes de subir a producci贸n. - Asegura que nuevas funciones no rompan las existentes. - Permite mantener c贸digo limpio y confiable.

⚙️ Configuraci贸n inicial

Laravel usa PHPUnit para ejecutar las pruebas. Ya viene preinstalado en cada proyecto, con un archivo de configuraci贸n phpunit.xml.


# Ejecutar todos los tests
php artisan test

# O directamente con PHPUnit
vendor/bin/phpunit

馃З Estructura de carpetas de pruebas

Los archivos de test se encuentran en /tests:

  • Feature/ — pruebas que interact煤an con rutas, controladores y vistas.
  • Unit/ — pruebas de funciones o clases individuales.

馃И Crear una nueva prueba


php artisan make:test UsuarioTest

Esto crear谩 un archivo en tests/Feature/UsuarioTest.php con una estructura inicial lista para editar.

馃摌 Ejemplo de test b谩sico


namespace Tests\Feature;

use Tests\TestCase;

class UsuarioTest extends TestCase
{
    public function test_pagina_principal_carga_correctamente()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
        $response->assertSee('Laravel');
    }
}

Este test verifica que la p谩gina principal responde correctamente y contiene el texto “Laravel”.

馃 Asserts m谩s comunes

  • $response->assertStatus(200) — Verifica c贸digo HTTP correcto.
  • $response->assertSee('Texto') — Comprueba que un texto est茅 presente.
  • $this->assertTrue($valor) — Asegura que la condici贸n sea verdadera.
  • $this->assertDatabaseHas('users', [...]) — Verifica registros en la base de datos.

馃О Testing con base de datos

Laravel permite ejecutar pruebas en una base de datos de prueba temporal usando el trait:


use Illuminate\Foundation\Testing\RefreshDatabase;

class RegistroUsuarioTest extends TestCase
{
    use RefreshDatabase;

    public function test_creacion_usuario()
    {
        $response = $this->post('/register', [
            'name' => 'Jorge',
            'email' => 'jorge@test.com',
            'password' => '12345678',
        ]);

        $this->assertDatabaseHas('users', ['email' => 'jorge@test.com']);
    }
}

馃殌 Testing de API

Tambi茅n puedes probar tus endpoints de API:


$response = $this->getJson('/api/users');
$response->assertStatus(200)
         ->assertJsonStructure(['data']);
  

馃搫 Resumen

  • Usa php artisan test para ejecutar todos los tests.
  • Guarda los tests en tests/Feature o tests/Unit.
  • Usa traits como RefreshDatabase para limpiar la base de datos.
  • Los tests garantizan la estabilidad del c贸digo en el tiempo.

Publicar un comentario

0 Comentarios