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.