Pruebas de Estilos de Comportamiento GWT en Pest

Given-When-Then (GWT) es un plugin para Pest que introduce pruebas al estilo de comportamiento (Behavior-Driven Testing).

Esta técnica te permite estructurar tus pruebas de una manera más clara y comprensible al dividirlas en tres pasos:

  1. Given (Dado): Prepara el estado inicial de la aplicación.
  2. When (Cuando): Actúa sobre el estado.
  3. Then (Entonces): Verifica el resultado esperado.

Ejemplo de Uso ‍

use AppExceptionsBlockedUserException;
use AppModelsUser;
use function PestGwtscenario;
use function PestLaravelassertDatabaseHas;

scenario('activar usuario')
    ->given(fn() => User::factory()->create())
    ->when(fn(User $user) => $user->activate())
    ->then(fn(User $user) => assertDatabaseHas('users', [
        'id' => $user->id,
        'activated' => true,
    ]));

scenario('activar usuario bloqueado')
    ->given(fn() => User::factory()->blocked()->create())
    ->when(fn(User $user) => $user->activate())
    ->throws(BlockedUserException::class);

Más información

Para aprender más sobre este plugin, obtener instrucciones de instalación completas y ver ejemplos adicionales, puedes consultar el repositorio oficial en GitHub.