Tempo di lettura: 5 minuti
Nel mondo dello sviluppo software, l’automazione dei test è un pilastro fondamentale per garantire la qualità del codice e la stabilità dell’applicazione. Laravel 11 offre una solida integrazione con PHPUnit, un framework di testing che rende facile scrivere e eseguire test per il tuo codice. In questo tutorial, vedremo come installare Laravel, configurare PHPUnit e scrivere alcuni test di base per la tua applicazione.
Installazione di Composer e Laravel
Prima di iniziare a scrivere i test, dobbiamo configurare l’ambiente di sviluppo. Per fare questo, dovremo installare Composer e il Laravel Installer. Composer è uno strumento di gestione delle dipendenze per PHP e ci permette di installare facilmente Laravel e altre librerie.
Installare Composer globalmente
Se non hai ancora installato Composer sul tuo sistema, puoi farlo seguendo questi passi:
- Vai alla pagina di download ufficiale di Composer: https://getcomposer.org/download/.
- Segui le istruzioni per il tuo sistema operativo. Una volta installato, verifica l’installazione aprendo il terminale e digitando:
composer --version
Se tutto è andato a buon fine, dovresti vedere la versione di Composer che hai appena installato.
Installare Laravel Installer globalmente
Una volta che Composer è installato, possiamo installare il Laravel Installer, che semplifica la creazione di nuovi progetti Laravel.
Per farlo, esegui il seguente comando nel terminale:
composer global require laravel/installer
Questo comando installa Laravel Installer globalmente, il che ti permette di creare nuovi progetti Laravel facilmente.
Creare un nuovo progetto Laravel
Adesso che abbiamo Composer e Laravel Installer installati, possiamo creare un nuovo progetto Laravel. Per farlo, usa il comando laravel new
:
laravel new laravel-testing
Questo comando creerà una nuova directory chiamata laravel-testing
e installerà automaticamente l’ultima versione stabile di Laravel al suo interno. Una volta completato, spostati nella cartella del progetto appena creato:
cd laravel-testing
A questo punto, hai una nuova applicazione Laravel pronta per essere configurata e testata.
Configurazione di PHPUnit in Laravel
Laravel viene fornito con PHPUnit già configurato, quindi non c’è bisogno di fare molte modifiche. Puoi iniziare a scrivere i tuoi test subito.
Per verificare che tutto sia pronto per l’esecuzione dei test, esegui il seguente comando:
php artisan test
Questo comando eseguirà i test già presenti (anche se di default non ci sono test predefiniti, quindi il risultato sarà “nessun test trovato”). Se l’installazione è andata a buon fine, vedrai un messaggio che indica che l’ambiente di testing è pronto.
Scrivere il primo test
Ora che Laravel è configurato e PHPUnit è attivo, possiamo scrivere il nostro primo test. Laravel ha due tipi principali di test: test funzionali e test unitari. I test funzionali si trovano nella cartella tests/Feature
, mentre i test unitari si trovano in tests/Unit
.
Cominceremo con un semplice test per verificare che la home page dell’applicazione restituisca una risposta corretta.
Creare un test per la home page
Crea un nuovo test nella cartella tests/Feature
chiamato ExampleTest.php
:
<?php namespace Tests\Feature; use Tests\TestCase; class ExampleTest extends TestCase { /** * Testa che la home page risponda correttamente. * * @return void */ public function test_home_page_returns_successful_response() { $response = $this->get('/'); $response->assertStatus(200); } }
In questo esempio, stiamo scrivendo un test che verifica che la rotta principale (/
) della nostra applicazione risponda con un codice di stato HTTP 200 (che indica una risposta corretta).
Eseguire i test
Ora che abbiamo scritto il nostro primo test, possiamo eseguirlo per verificarne il funzionamento. Per farlo, basta eseguire il comando:
php artisan test
Laravel eseguirà i test e ti mostrerà il risultato. Se il test è passato, vedrai un messaggio che indica che la risposta della home page è stata corretta. In caso contrario, Laravel ti mostrerà un errore che ti aiuterà a capire cosa non ha funzionato.
Scrivere un test per l’autenticazione
Ora che abbiamo scritto un test di base, possiamo passare a qualcosa di più complesso, come il testing del processo di login degli utenti. Immagina di avere un’applicazione in cui gli utenti possono autenticarsi. Scriveremo un test per verificare che un utente possa effettuare correttamente il login.
Creare un test per il login
In questo esempio, scriveremo un test per verificare che un utente possa accedere con credenziali corrette. Crea un nuovo test chiamato AuthenticationTest.php
nella cartella tests/Feature
:
<?php namespace Tests\Feature; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class AuthenticationTest extends TestCase { use RefreshDatabase; /** * Testa che un utente possa effettuare il login con credenziali corrette. * * @return void */ public function test_user_can_login_with_correct_credentials() { $user = User::factory()->create([ 'email' => 'test@example.com', 'password' => bcrypt('password123'), ]); $response = $this->post('/login', [ 'email' => 'test@example.com', 'password' => 'password123', ]); $response->assertRedirect('/home'); $this->assertAuthenticatedAs($user); } }
In questo test, stiamo utilizzando la factory di Laravel per creare un utente con un’email e una password specifica. Successivamente, simuliamo una richiesta di login con le stesse credenziali e verifichiamo che l’utente venga reindirizzato correttamente alla pagina /home
e che l’autenticazione sia avvenuta con successo.
Conclusioni
Scrivere test automatizzati in Laravel con PHPUnit è un processo semplice grazie all’integrazione che il framework offre. In questo tutorial, abbiamo visto come installare Laravel, configurare PHPUnit e scrivere i primi test per l’applicazione. I test ti permettono di rilevare errori prima che diventino un problema e ti offrono un importante livello di sicurezza durante lo sviluppo.
Se hai domande o dubbi, non esitare a lasciare un commento. Buon coding!