( atomheart | 2015. 11. 18., sze – 20:40 )

"Hát nem egészen ugyanaz, ("not responding at all to anything outside what's programmed in for the test"),"

Szamodra kedvezoen kihagytad a "usually"-t. :^)

"Lásd a fenti példámat, ott nem csak az "1234" userId-re ad vissza igaz értéket, hanem minden másra hamisat."

Mockito-s stub-ot is parameterezheted ugy, hogy barmilyen ertekre x-et teritsen vissza (sot, altalaban van egy teszt metodusod, ami teszteli, hogy AuthService a UserService parameteret kapja meg, itt egy mockot hasznalunk ami konkret erteket var, de a tobbi tesztesetben AuthService Stub-ot ugy parameterezzuk, hogy barmilyen ertekre true/false-ot teritsen vissza! - egy logikai assertion per teszt metodus elv). Mockitoval viszont megteheted, hogy csak azokat az ertekeket drotozod be, amelyek tenyleg fontosak a tesztnek. Ha a te implementaciodba kezdesz belepakolni mindenfele logikat (if donti el a visszateritett erteket), akkor tovabb bonyolitod a teszt kodot, mert egy bedrotozott ertek helyett, ami lenyeges az aktualis teszt szemszogebol, ertelmezned kell a feltetelt.

"Az interface összes metódusát implementálni kell, így ha van egy authLocalUser metódusa is, akkor azt is implementálnia kell. Mocknál, ha authUser-re írtad meg a tesztet és a kód megváltozik authLocalUser használatra, akkor hibát fog jelezni a teszt, ráadásul nyomozni kell, hogy miért is."

Es mi garantalja, hogy a te implementaciodban levo authLocalUser altal visszateritett ertek pont kompatibilis lesz a regi teszttel? Ha eleve ugyanazt a konstanst teriti vissza, akkor akar hibasan is atirhatod a prod kodot, hogy authLocalUser-t hasznaljon, de a teszt nem fog hibat jelezni. Mockito-val alapbol visszaterit egy null-t, lerohad a teszt, es szepen atirod, de legalabb kaptal egy emlekeztetot, hogy he, bizti, hogy ez igy jo lesz?

"akkor pedig paraméterezhetőre csinálják, pl. megkapja konstruktorban az elfogadott userId-t."

Ezzel elindulsz a Mockito ujraimplementalasanak az iranyaba, es megint elojon a bonyolodo teszt kod problemaja, mar van egy konstruktor parametered, bonyolultabb logika a sajat stub implementaciodban.

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám