( enpassant | 2016. 08. 26., p – 12:03 )

Ha Mock-ot (Stub-ot) használsz, akkor rosszul tervezett a kódod.
A fenti esetnél is megmutatkozik két fő probléma:

  1. Az implementációt teszteled. Tudod, hogyan van a tesztelendő kódod implementálva és eszerint írod a tesztet.
    Itt meg van hívva az Util.add függvény és erre létrehozol egy Mock-ot, hogy teszteld jó paraméterekkel hívják-e meg az Util.add-ot.
    Ha korrekt módon változik az implementáció, akkor hibát jelezhet a hibátlan kódodra. A fenti példánál pl. kicseréled az Util.add(x, y) hívás x + y -ra.
    Máris nem fog meghívódni elvárt módon a Mock és hibát kapsz, holott korrekt a kódod.
  2. A tesztelés célja félresiklik. A fenti esetben a(z egyik) cél, hogy meghívódik-e az Util.add. Holott ez nem kellene, hogy célja legyen az adott tesztnek.
    Ismét, ha kicseréled az Util.add-ot x + y-ra, akkor nem is fog teljesülni egy cél és hibát kapsz.