( YleGreg | 2021. 01. 05., k – 10:31 )

Igen, nem. :-)

Valóban nincsenek unit tesztjeim, mivel hagyományos értelemben vett unitjaim sincsenek. A pluginek lehetnének unitok, de azok meg egy kivétellel olyan egyszerűek, hogy szerintem egyikkel sem volt gond miután elkészültek. A több plugin együttes futásakor már volt, hogy lábon lőttem magam, de azt meg már csak integrációs teszteléssel lehetett volna megfogni, ami messzire vezet.

Én erősen a szeretem a defenzív kódot, mert gyakran van olyan, hogy az egyedi környezet miatt az éles rendszeren kell fejlesztenem.
Tudom, ez elenjavalt, meg ne így csináljam, de ilyen az élet.

Erre nekem az az egyik megoldásom, hogy kirakom azt a kurva else ágat akkor is, ha nincs értelme, és belerakok egy trace logot, hogy na most estünk pofára. Egyébként is sokat logolok, mert a kicsit is nem triiális helyeken kiírom, hogy mi alapján döntött úgy a program ahogy. Ez hibakereséskor baromi jól jön.

Most direkt megnéztem, egy session 34k log írással jár, egy nap cirka 10 MB. A log struktúrált, követhető, hogy ki-kivel van, nem csak belehányom ami éppen jön. 10 napnyi logot tartok meg, a régebbi automatikusan törlődik. Így elpazarlok a lemezből cirka 100 MB-ot, de több mint egy hétre vissza lehet ciklikusságot vizsgálni a logokban.

Van olyan rész amit érdemes tesztelni, és van olyan amit nem. Nálam az állapotgép az ami nem triviális, sok mindentől függ az állapottere, és a "csillag-hold együttállások" esetén kijövő hibás döntéseket nehéz kihozni, pont a ritkaságuk miatt. Az automata teszt erre való, hogy végigzongorázza az összes kombinációt, így meg tudja fogni a regressziót. A többi rész tesztelése fejlesztés közben történik.

Szerencsére ez a kód nincs kitéve hülye felhasználóknak meg internetes baszkurálásnak, a bemenetekről szeretném azt hinni, hogy megbízható forrásból származik, lévén a 90% -át én állítom elő egy másik programmal. Volt és lesz is benne persze hiba, de több idő lenne mindenre is tesztet írni, mint időnként kijavítani, vagy felkészíteni valami új dologra amikor megváltozik a környezet.