Pest è un framework di testing moderno e minimalista per PHP, progettato per rendere i test più leggibili e veloci da scrivere. Laravel lo supporta perfettamente e lo rende una scelta popolare per chi desidera scrivere test puliti e comprensibili.
Installazione di Pest
Per iniziare, è necessario installare Pest all'interno di un progetto Laravel esistente. Usa Composer per aggiungerlo come dipendenza di sviluppo:
composer require pestphp/pest --dev
Successivamente, inizializza Pest con:
php artisan pest:install
Questo comando creerà i file di configurazione e convertirà eventuali test esistenti in formato compatibile con Pest.
Scrivere un test di base
I test scritti con Pest sono molto leggibili. Ecco un esempio di test di base:
test('la homepage è accessibile', function () {
    \$response = \$this->get('/');
    \$response->assertStatus(200);
});
La funzione test() è un helper fornito da Pest. All'interno del blocco puoi usare i metodi forniti da Laravel per l'interazione con il framework.
Testare un controller
Puoi testare un controller come segue:
test('un utente può visualizzare la propria dashboard', function () {
    \$user = User::factory()->create();
    \$response = \$this->actingAs(\$user)->get('/dashboard');
    \$response->assertOk();
    \$response->assertSee('Benvenuto');
});
Utilizzare dataset nei test
Pest supporta i dataset per test parametrizzati. Ecco un esempio:
dataset('status_codes', [
    [200, '/'],
    [302, '/login'],
]);
test('le rotte rispondono con lo status atteso', function (\$expected, \$uri) {
    \$response = \$this->get(\$uri);
    \$response->assertStatus(\$expected);
})->with('status_codes');
Conclusione
Pest è uno strumento potente e facile da usare per i test in Laravel. Offre una sintassi chiara e funzionalità avanzate come i dataset, i plugin e un'ottima integrazione con l'ecosistema Laravel. Adottarlo nel tuo flusso di lavoro può migliorare significativamente la qualità del codice e la produttività nel testing.