Enhetstesta dina klasser med PHPUnit i Symfony
Du skall jobba med enhetstestning mot din kod från kortspelet i Symfony. Dina testobjekt är alltså de klasser som du har i kortspelet. Vi kan inledningsvis exkludera controller-klasser och enbart fokusera på modell-klasserna.
Du skall skapa en testsuite av testfall som testar så mycket som möjligt och rimligt i dina testobjekt.
Tanken är att du försöker nå så hög kodtäckning som är möjligt och rimligt
#Förkunskaper
Du kan grunderna i enhetstestning med phpunit.
Du har installerat Xdebug och kan mäta kodtäckning med phpunit.
Du kan köra enhetstester i Symfony.
Du kan generera dokumentation med phpdoc.
#Krav
Kraven är uppdelade i sektioner.
#Installera och konfigurera
Installera phpunit och lägg till det som ett skript
composer phpunit
.Gör så att kodtäckningsrapport för HTML genereras till katalogen
docs/coverage
.
#Bygg en test suite
Skapa en test suite för ditt kortspel.
Dina modellklasser är dina testobjekt och varje modellklass skall ha minst en testklass med testfall.
Varje testfall har minst en assertion.
Du har en kodtäckning som överträffar 70% på varje testobjekt men sikta mot att nå över 90% kodtäckning.
Det är helt okey om du vill uppdatera din källkod för att göra den bättre eller mer testbar. Code refactoring (att skriva om sin kod för att förbättra den) är ofta ett bra alternativ.
Kär enhetstesterna med
composer phpdoc
.
[OPTIONELLT] Som en extra utmaning kan du se om dina controllers är testbara med phpunit och i vilken mån du kan testa dem eller vad som krävs för att du skall kunna testa dem.
#Dokumentera kod
Välj ut minst en av dina klasser och lägg till kommentarer med PHP DockBlock. Dina kommentarer skall minst innehålla en rads beskrivning av vad metoderna och klassen gör.
Generera dokumentationen till katalogen
docs/api
med kommandotcomposer phpdoc
.
#Utvecklingsmiljö
Fixa till din kod enligt den kodstil du kör genom att köra
composer csfix
.Kolla din kod hur den matchar dina linters genom att köra
composer lint
.Dubbelkolla att dina testfall passerar med
composer phpunit
.Generera documentation av din kod med
composer phpdoc
.
#Publicera
Committa alla filer och lägg till en tagg 4.0.0. Om du gör uppdateringar så ökar du taggen till 4.0.1, 4.0.2, 4.1.0 eller liknande.
Kör
dbwebb test kmom04
för att kolla att du inte har några fel.Pusha upp repot till GitHub, inklusive taggarna.
Gör en
dbwebb publishpure report
och kontrollera att att det fungerar på studentservern.
#Tips från coachen
Lycka till och hojta till i chatt och forum om du behöver hjälp!
#Revision history
- 2023-04-20: (B, mos) Genomgången inför vt23.
- 2022-04-18: (A, mos) Första utgåvan i mvc-v2.