Kdy je lepší použít TestCase a kdy ne?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
fary
Člen | 155
+
0
-

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);
	}
}

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
+
0
-

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
+
0
-

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