Skapa enhetstester till Anax Lite
Du ska använda dina kunskaper om enhetstestning med phpunit för att börja bygga testfall till klasser i ditt Anax Lite.
#Förkunskaper
Du är väl bekant med Anax Lite.
Du har installerat PHPUnit och Xdebug samt kört igenom exemplet om phpunit.
#Introduktion
Du skall visa att du kan grunderna i att göra testfall och assertions samt att du behärskar grunderna i kodtäckning.
Ditt Anax Lite är förberett för enhetstestning. Du behöver bara skapa katalogen test
, lägga dit en fil test/config.php
som inkluderar autoloadern från composer samt lägga dit testfall i form av klasser, förslagsvis i en katalogstruktur som motsvarar den du har under src
.
Du behöver även en konfigurationsfil .phpunit.xml
som du kan låna av exemplet example/phpunit/.phpunit.xml
eller från någon av Anax moduler.
Låt oss hålla det enkelt och enbart testa klasser som är uppenbart testbara och utan externa beroenden. Vi vill inte blanda in mockning av testobjekt, data providers, eller setup/teardown av databaser. Vi tar mer avancerad enhetestestning i kommande kurser.
Gå gärna in i Anax moduler och exekvera make install
följt av make phpunit
eller make test
för att köra modulens testsuite och generera kodtäckningen. Du kan studera hur bra kodtäckning modulerna har och studera hur deras testfall är uppbyggda i respektive test
katalog.
#Krav
Utgå från exemplet om phpunit och skapa ett testfall för
Guess::makeGuess()
och uppnå 100% kodtäckning.Se till att du har ett testfall som kontrollerar att rätt typ av Exception kastas i
Guess::makeGuess()
.Kör enhetstesterna för
Guess
viamake test
och din globala installation av PHPUnit kommer att användas.Leta genom din kod i Anax Lite och finn en eller flera klasser som lämpar sig att enhetstesta. Skriv minst en testklass med minst två testfall och relevanta assertions.
Kontrollera vilken kodtäckning du lyckades uppnå och se om du med mindre modifikationer av ditt testfall kan öka kodtäckningen.
Kör enhetstesterna via
make install
följt avmake phpunit
ellermake test
. Makefilen kommer att installera och använda en lokal installation av PHPUnit som finns i din kataloganax-lite/.bin
.Validera och publicera.
#Extrauppgift
Lös extrauppgifterna om du har tid och motivation.
- Skapa fler testfall och bygg upp din kodtäckning, hur högt kan du nå?
#Tips från coachen
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2017-04-28: (A, mos) Första utgåvan.