Enhetstesta dina klasser med PHPUnit i Symfony

By . Latest revision .

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.

#Introduktion och förberedelse

Börja med att installera PHPUnit på det viset som Symfony rekommenderar att det görs tillsammans med en Symfony applikation. Du kan se hur man gör i artikeln “Run unittests with PHPUnit in Symfony”.

#Krav

Kraven är uppdelade i sektioner.

#Installera och konfigurera

  1. Installera phpunit och lägg till det som ett skript composer phpunit.

  2. Gör så att kodtäckningsrapport för HTML genereras till katalogen build/coverage.

#Bygg en test suite

  1. Skapa en test suite för ditt kortspel.

  2. Dina modellklasser är dina testobjekt och varje modellklass skall ha minst en testklass med testfall.

  3. Varje testfall har minst en assertion.

  4. Du har en kodtäckning som överträffar 50% på varje testobjekt.

  5. Det är helt okey om du vill uppdatera din källkod för att göra en bättre eller mer testbar.

#Utvecklingsmiljö

  1. Fixa till din kod enligt den kodstil du kör genom att köra composer csfix. Se till att skriptet även fixar kodstilen i katalogen tests.

  2. Kolla din kod hur den matchar dina linters genom att köra composer lint.

  3. Dubbelkolla att dina testfall passerar med composer phpunit.

  4. Generera documentation av din kod med composer phpdoc.

#Publicera

  1. 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.

  2. Kör dbwebb test kmom04 för att kolla att du inte har några fel.

  3. Pusha upp repot till GitHub, inklusive taggarna.

  4. 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

  • 2022-04-18: (A, mos) Första utgåvan i mvc-v2.

Document source.

Category: kurs mvc.