TestCase
V preprostih testih si lahko trditve sledijo ena za drugo. Včasih pa je koristno trditve zapreti v testni razred in jih tako strukturirati.
Razred mora biti potomec Tester\TestCase
in o njem govorimo preprosto kot o testcase.
Testni primer lahko obogatimo z metodami setUp()
in tearDown()
. Pokličemo jih pred/za vsako testno
metodo:
Če pride do napake v fazi setUp()
ali tearDown()
, bo test neuspešen. Če se napaka pojavi
v testni metodi, se metoda tearDown()
vseeno pokliče, vendar z zatrtimi napakami v njej.
Priporočamo, da anotacijo @testCase zapišete na začetku testa, potem bo izvajalec testov v ukazni vrstici izvajal posamezne metode testne zadeve v ločenih procesih in vzporedno v več nitih. To lahko znatno pospeši celoten postopek testiranja.
Anotacija metod
Na voljo je nekaj opomb, ki nam pomagajo pri testiranju metod. Zapišemo jih v smeri testne metode.
@throws
To je enaka uporaba Assert::exception()
znotraj testne metode. Vendar je zapis bolj berljiv:
@dataProvider
Ta opomba je primerna, kadar želimo testno metodo zagnati večkrat, vendar z različnimi argumenti. (Ne smemo ga zamenjati z istoimensko opombo za datoteke.)
Kot argument zapišemo ime metode, ki vrne parametre za testno metodo. Metoda mora vrniti polje ali Traversable. Preprost primer:
Druga anotacija @dataProvider kot argument sprejme pot do datoteke INI (relativno do testne datoteke). Metoda se
pokliče tolikokrat, kolikor odsekov vsebuje datoteka INI. Datoteka loop-args.ini
:
in metoda, ki uporablja datoteko INI:
Podobno lahko namesto datoteke INI posredujemo pot do skripte PHP. Vrniti mora polje ali Traversable. Datoteka
loop-args.php
: