Kdy je lepší použít TestCase a kdy ne?
- fary
- Člen | 155
Testy lze tedy psát buď jako obyčejné asserce tokto:
...
Assert::true(TRUE);
...
a také seskupit do třídy která dědí Tester\TestCase:
class SomeTest extends Tester\TestCase
{
public function testMethod()
{
Assert::true(TRUE);
}
}
V dokumentaci je
napsáno že
Někdy je výhodnější aserce zabalit do testovací třídy a tak je strukturovat.
Jenomže já bohužel nevím, kdy a ve kterých případech je to lepší. Mohl
by zde někdo prosím uvést pár příkladů?
- besanek
- Člen | 128
Základní případ. Používáš obyčejné asserce. Zjistíš že máš
několik testů, které si nejdříve připraví databázi a ve všech se ti
opakuje stejný kód. Testy přepíšeš na jednu DatabaseTest
dědící TestCase
a ten společný kód vyčleníš do metod
setUp()
popř. tearDown()
.
Pokud je těch testů opravdu hodně, tak si DatabaseTest
můžeš udělat abstraktní a dědit z nich jednotlivé testy. Třeba
UserDatabaseTest
. To bys z běžnými assert scripty tak lehce
neudělal.
- Filip Procházka
- Moderator | 4668
Imho není jedno lepší nebo horší, je to hlavně o zvyku a to tom co ti pocitově přijde lepší a co se ti lépe použivá. Já mám raději TestCase, protože jsem před testerem používal PHPUnit a jsem na to zvyklý, David má zase raději testy formou scriptů (ty co jsou v Nette).