Lekce 4 - PHPUnit DataProvider a BestPractices
V minulé lekci, Testování v PHP - Dokončení unit testů, jsme pokryli unit testy třídu reprezentující jednoduchou kalkulačku. Získali jsme přehled o jednotlivých assert metodách a naučili se testovat výjimky.
Dnes se v PHPUnit naučíme používat anotaci, která nám pomůže dodržovat princip DRY a zmíníme si best practices testování v PHP.
DataProvider
Již známe anotaci @expectedException
, která nám umožňuje
otestovat, že daný test vyvolal danou výjimku. V našich testech bude také
často docházet k situaci, že napíšeme nějaký test a ten samý test budeme
chtít spustit na různých datech, abychom zjistili, že projdou různé
vstupy. Vytvářet pro každý vstup metodu, která by měla to samé tělo a
lišila by se pouze v datech, je porušení principu DRY (Don't Repeat
Yourself).
Abychom si ukázali takový příklad v praxi, představme si, že naše
kalkulačka disponuje metodou sin()
, která přijímá úhel v
radiánech a vrací hodnotu funkce sinus pro tento úhel. Implementace metody v
kalkulačce by mohla být následující (jedná se samozřejmě o příklad
metody třídy, kterou tu otestujeme, takže klidně jen provoláme již
existující PHP funkci):
public function sinus($uhel) { return sin($uhel); }
V testech by bylo dobré otestovat nějaké nějaké krajní hodnoty, hodnoty
pravé úhly, záporné hodnoty, nulu, však to znáte
Představme si, že metodu budeme chtít testovat ve stupních a ne v radiánech. To proto, abychom v testu potřebovali pro získání výstupu volat ještě nějaké další metody nebo dokonce používat další objekty (závislosti):
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium III, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu se naučíme používat anotaci @dataProvider, testovat privátní nebo protected metody, a zmíníme si best practices ohledně testování v PHP.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.