Introduction
Laravel intègre des outils pour tester en toute sécurité et rapidement les fonctionnalités reposant sur la base : trait de réinitialisation, factories, seeders, assertions dédiées. Combinés, ils produisent des tests robustes. Commencez parRefreshDatabase : dans la plupart des cas, il assure l’isolation plus vite qu’une réinitialisation complète.
Réinitialiser la base entre chaque test
Utilisez le trait Laravel pour empêcher les données d’un test d’influencer le suivant.RefreshDatabase vérifie si le schéma est à jour. Si oui, il enveloppe la base dans une transaction ; sinon, il migre d’abord.
Pour une réinitialisation complète à chaque test, utilisez :
| Trait | Comportement | Cas d’usage |
|---|---|---|
RefreshDatabase | Transaction si schéma à jour, sinon migration | Premier choix |
DatabaseMigrations | Migration à chaque test | Passer par le cycle complet de migration |
DatabaseTruncation | TRUNCATE des tables | Si les transactions ne conviennent pas |
Model factories
Utilisez les factories pour générer des modèles rapidement. Voir Factories Eloquent pour les détails.Exécuter les seeders
Utilisezseed() pour peupler la base. Sans argument, il exécute DatabaseSeeder ; avec un argument, un seeder ou tableau spécifique.
RefreshDatabase, ajoutez l’attribut #[Seed] à la classe de base.
#[Seeder(...)].