"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