PhpUnit - közös teszt változók
Van egy olyan - szerintem elhibázot - húzása a phpunit-nak, hogy ha csinálsz egy testcase-t, és abban több teszt metódust, akkor minden teszt metódushoz újra példányosítja a case-t, és futtatja a setup-ot. Be lehet állítani valahogyan, hogy ezt ne tegye, és csak egy testcase példányt hozzon létre, és azon futtassa az összes megadott metódust? Baromira zavaró ez a viselkedése, főleg integrációs teszteknél, ahol igyekszik spórolni az ember az adatok legatterolásával és újra feltöltésével, hogy gyorsak legyenek.
■
Statikus változó? És olyankor
Ja, most ezt csinálom, de
Csökkenteni akarták az
+1
Ez így teljesen értelmetlen,
Ilyen túlbonyolítás helyett tökéletesen elég lett volna a következő:
Kösz, a setupBeforeClass
"főleg integrációs
phpunit unit tesztelésre lett kitalálva, nem integrációs tesztelésre.
Ez nem magyarázza, hogy miért
Miért lenne már az a hibás
Mielőtt túl messzire megyünk
Nyilván ebben az esetben példányosítom 10x a User osztályt.
Ha a User osztályodnak van tíz metódusa, akkor te mindegyik metódus meghívásához csinálsz külön User példányt, vagy meghívod őket ugyanazon a példányon?
Tehát ha van tíz külön
Persze. Viszont ilyen esetben
Minden metódust külön
Én nem tartom jó megoldásnak,
nem hibás tervezés
A probléma megoldása pedig nem túl bonyolult, csak a TestCase osztályt be kell wrappelni egy saját TestCase osztályba, ami az általad elképzelt viselkedést valósítja meg.
A probléma megoldása pedig
És az automatikus TestCase osztály és test metódus felderítés ugyanúgy működni fog? Nem hiszem... (Mondjuk próbálni nem próbáltam, de nem jellemző, hogy ennyire rugalmas lenne 1-1 rendszer.)
subscribe