Blog

Laravel 11 con Pest: tests que no frenan tus releases

Autor
Ignacio Amat Ignacio Amat
Publicado
Lectura 3 min
Terminal mostrando ejecución exitosa de tests Pest en un proyecto Laravel moderno

En muchos equipos, el testing se ve como un “mal necesario” que ralentiza el desarrollo. “No tenemos tiempo para tests, hay que salir ya”. Como Full Stack, mi respuesta es siempre la misma: no tienes tiempo para no hacer tests.

Con Laravel moderno y Pest, el testing ha pasado de ser una carga a ser una herramienta de velocidad. Aquí te explico mi estrategia para mantener la calidad sin frenar el despliegue.

¿Por qué Pest?

Pest no es solo “PHPUnit con una sintaxis bonita”. Es un cambio de mentalidad. La sintaxis funcional hace que los tests sean mucho más legibles y, por lo tanto, más fáciles de mantener.

Un test en Pest se lee casi como lenguaje natural:

it('allows a premium user to download reports', function () {
    $user = User::factory()->premium()->create();

    $this->actingAs($user)
        ->get('/reports/download')
        ->assertStatus(200);
});

Mi pirámide de testing en 2026

No todos los tests valen lo mismo. Para maximizar el ROI del tiempo invertido, sigo esta estructura:

1. Feature Tests (60%)

Es donde más me enfoco. Prueban una funcionalidad completa desde la perspectiva del usuario o de la API. Si el Feature Test pasa, sé que el negocio está a salvo. Laravel lo pone increíblemente fácil con sus helpers de HTTP y autenticación.

2. Unit Tests (30%)

Para lógica compleja, cálculos o servicios aislados. Son ultrarrápidos y me permiten probar todos los edge cases de una función sin tocar la base de datos.

3. Architecture Tests (10%)

Una de mis funcionalidades favoritas de Pest. Permiten asegurar que el equipo sigue las reglas de arquitectura automáticamente:

arch('globals')
    ->expect(['dd', 'dump', 'var_dump'])
    ->not->toBeUsed();

arch('app')
    ->expect('App\Models')
    ->toOnlyBeUsedIn('App\Repositories');

Testing aumentado por IA

Aquí es donde entra el factor 2026. Uso Claude Code para generar el “andamio” de los tests.

Mi flujo:

  1. Escribo la lógica de la feature.
  2. Le pido a Claude: “Lee este controlador y genera los feature tests necesarios cubriendo los casos de éxito, validación fallida y permisos”.
  3. Reviso y ajusto los tests generados.

Esto elimina el 80% del trabajo repetitivo de escribir tests.

El pipeline de CI/CD: La verdad definitiva

Ningún código llega a main si los tests no pasan. Uso GitHub Actions para ejecutar la suite de Pest en cada PR. Si un test falla, el despliegue se bloquea. Esto me permite dormir tranquilo sabiendo que no he roto una funcionalidad crítica en una release de viernes por la tarde.

Conclusión

El testing con Laravel moderno y Pest no es un obstáculo, es el seguro de vida de tu producto. Te permite refactorizar con confianza y entregar valor de forma constante.

Cuando un equipo alcanza esa confianza, también revisa mejor y despliega con menos fricción. Para mí, esa es la diferencia entre “tener tests” y usar testing como ventaja real de producto.

Si quieres ver cómo aplico testing y criterio de calidad en producto real, revisa mi stack técnico y mis proyectos destacados.

Artículos relacionados

Revisa mi perfil como desarrollador

Si este artículo encaja con los retos técnicos de tu equipo, revisa mi stack o mi disponibilidad profesional.

Envíame el contexto del rol

Con rol, stack, modalidad y timing ya puedo decirte si encaja avanzar. Respondo en menos de 24 horas hábiles.

0/500
Disponibilidad