Aan de slag
Laravel biedt standaard voorzieningen om functionaliteit die de database gebruikt veilig en snel te verifiëren. Door database-reset-traits, modelfactories, seeders en speciale assertions te combineren, maak je tests die niet snel breken. Begin in de basis metRefreshDatabase. In veel gevallen behoud je daarmee de onafhankelijkheid van je tests sneller dan met een volledige reset.
De database na elke test resetten
Gebruik de database-reset-traits van Laravel om te voorkomen dat data van een eerdere test de volgende test beïnvloedt.RefreshDatabase bepaalt of het schema up-to-date is. Zo ja, dan wordt de test in een transactie uitgevoerd; zo niet, dan worden eerst de migraties uitgevoerd.
Wil je niet de transactie-aanpak, maar elke keer een volledige reset, gebruik dan een van de volgende traits.
Modelfactories
Wanneer je data voorbereidt vóór een test, kun je met modelfactories beknopt Eloquent-modellen genereren. Zie Eloquent-factories voor details over factory-definities, states en relaties.Seeders uitvoeren
Wil je tijdens een test data inladen, gebruik danseed(). Zonder argument wordt de DatabaseSeeder uitgevoerd, met argument een specifieke seeder (of een array).
RefreshDatabase gebruiken elke keer automatisch seeden, voeg dan het #[Seed]-attribuut toe aan je basistestklasse.
#[Seeder(...)].