Fixtures
Fixtures zijn een werk in uitvoering. Er zijn nu net genoeg fixtures om in te kunnen loggen. Er moeten er nog een boel bijgebouwd worden.
Er zijn fixtures om data in de database te laden zonder dat je een productiedatabase nodig hebt. Dit kan handing zijn voor het maken van tests.
De fixture generators gaan altijd uit van een database waar alle migraties op uitgevoerd zijn.
Fixtures worden in de tests gebruikt als een basis, zodat het niet meer nodig is om alle data met de hand op te bouwen.
Fixtures laden
Voordat je fixtures gaat laden is het belangrijk om te controleren of je huidige database weggegooid mag worden.
Run [PHP] Dotenv status
in PhpStorm en controleer de waarde van DATABASE_URL
of dit naar de goede database verwijst. Verander anders in .env.local
de database naar bijv. csrdelft_test
.
Met [PHP] Database Fixtures
in PhpStorm kunnen de fixtures geladen worden, dit leegt de database!
De fixtures bevatten ook het account x101
met wachtwoord stek open u voor mij!
, dit account heeft PubCie rechten.
Fixtures maken
Met de maker bundle kun je makkelijk nieuwe fixtures genereren. Run php bin/console make:fixtures
om nieuwe fixtures te maken. In de map lib/DataFixtures
staan alle fixtures. Je kan hier afkijken hoe het gedaan wordt.
Voor fixtures kun je ook fzaninotto/faker
gebruiken om fake data te genereren.
Fixtures in tests
In tests kun je gebruik maken van de data gegenereerd in de fixtures. Bijvoorbeeld de AccountFixtures, als je naar een fixture wil verwijzen maak dan een const met de id of uid van de data waar je het over hebt.
Zie als voorbeeld GeslachtVoterTest
, in de fixtures wordt de boel goed gezet en in de test wordt naar de specifieke accounts die hier goed gezet zijn verwezen.
Je kan er bij een test altijd vanuit gaan dat er een verse database staat, maar probeer alsnog de database netjes achter te laten na een test.
Let op met Faker als je fixtures voor testen wil gebruiken, gegevens die iedere keer veranderen zijn hier natuurlijk onhandig.