Nette\Tester – Dedičnosť / Skip test

- Skotos
- Člen | 6
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
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.

- Skotos
- Člen | 6
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.