Nette\Tester – Dedičnosť / Skip test

Skotos
Člen | 6
+
0
-

Zdravím,

priamo v návode od Nette som narazil na túto zaujímavosť:

FAILURES! (35 tests, 1 failures, 1 skipped, 1.7 seconds)

Veľmi ma z toho zaujalo 1 skipped, pretože to by som práve potreboval. Ide o to, že i dátové štruktúry mám robené cez Interface. Preto som chcel urobiť Testy cez Dedičnosť:

abstract class TrieChildrenTest extends TestCase {}
         class ArrayListTest    extends TrieChildrenTest {}

Lenže, keďže trieda TrieChildrenTest je abstraktná, nie je možné ju logicky spustiť cez

$test = new TrieChildrenTest();
$test->run();

a teda sa púšťajú až potomkovia napr. ArrayListTest. To je všetko v poriadku. Problém je, že trieda TrieChildrenTest končí na „Test“ (podľa SyntaxeNette) a teda sa spustí a vtedy Tester vypíše ERROR:

-- FAILED: Class TrieChildrenTest | path\to\TrieChildrenTest.php
   Error: This test forgets to execute an assertion.

A práve preto som chcel urobiť umelo SKIP testu TrieChildrenTest, aby som sa zabavil tohto erroru. Viete mi niekto poradiť?

Ďakujem krásne za pomoc.

Pozn.: Využívam jednotlivé komponenty Nette, aplikácie nie je písaná v Nette od začiatku.

Skotos
Člen | 6
+
0
-

Skotos napsal(a):

A práve preto som chcel urobiť umelo SKIP testu TrieChildrenTest, aby som sa zabavil tohto erroru. Viete mi niekto poradiť?

Ďakujem krásne za pomoc.

Vyriešil som to tak, že som za názov abstraktného predka TrieChildrenTest vložil podčiarkovník (TrieChildrenTest_) a HOTOVO. Nemohol som to vyriešiť cez Environment::skip() pretože to vynechalo aj všetkých potomkov.

Ak máte niekto krajšie riešenie, sem s ním.

Martk
Člen | 651
+
+2
-

Pojmenoval bych to spíše TestCase na konci. V dokumentaci je napsané toto:

Tester vyhledává *.phpt a *Test.php soubory. Jako první spouští testy, které při předchozím běhu selhaly.

A tato abstraktní třída ti končí Test, ačkoliv se nejedná o test

Skotos
Člen | 6
+
0
-

Martk napsal(a):

Pojmenoval bych to spíše TestCase na konci. V dokumentaci je napsané toto:

Tester vyhledává *.phpt a *Test.php soubory. Jako první spouští testy, které při předchozím běhu selhaly.

A tato abstraktní třída ti končí Test, ačkoliv se nejedná o test

Presne k tomu som dospel aj ja a preto som na koniec vložil „_“, aby ho to nespúšťalo. Ďakujem.