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.