Az objektumorientált programozás során a gúnyok ( színlelt vagy mock objektumok ) szimulált objektumok, amelyek ellenőrzött módon utánozzák a valós objektumok viselkedését. A programozó létrehoz egy modellt annak érdekében, hogy tesztelje más objektumok viselkedését, valós, de hozzáférhetetlen vagy megvalósítatlan objektumhoz kapcsolódóan. Ez utóbbit aztán gúny váltja fel.
A koncepció használta először a XP 2000 konferencián egy cikkében Tim MacKinnon , Steve Freeman, és Philip Craig címmel Endo-tesztelés: egység tesztelése a Mock objektumok . Maga a kifejezés kölcsönzött az új Alice Csodaországban a Lewis Carroll különös tekintettel a fantázia teknős ( ál teknős ) az eredeti változat.
Néhányan javasolják, hogy a modell objektum kifejezést egy képzeletbeli objektumra fordítsák le . A meghatározás a melléknév ál , hogy nem valódi, hanem jelennek meg, vagy úgy tesz, mintha pontosan olyan, mint valami , akkor inkább, hogy a dummy tárgy (de ezzel elvesztené a vicces referencia).
Egy egység teszt , küldj képes szimulálni a viselkedését valós és komplex objektumok és hasznos, mint amikor ezek a valódi tárgyak lehetetlen használni. A következő eseteket idézhetjük:
Például egy riasztó program, amely egy adott időpontban csenget. A teszteléshez a programnak várnia kell az ütemezett időpontot, hogy ellenőrizze a csengés előfordulását. Ha egy modellt használnak, akkor az megváltoztatható a riasztási idő szimulálása céljából.
Az álnak ugyanaz az interfésze van, mint az általa szimulált objektumnak, így az ügyfélobjektum figyelmen kívül hagyhatja, hogy valós vagy szimulált objektummal lép-e kapcsolatba. A legtöbb modell használatának kerete lehetővé teszi a programozó számára, hogy meghatározza, hogy mely módszereket hívja meg, és milyen sorrendben. Ugyanez vonatkozik a nekik átadott paraméterekre. Az ál által visszaadott értékeket a programozó is meghatározza. Így egy komplex objektum, például egy hálózati aljzat viselkedését szimulálhatja a gúny, ezáltal a programozó tanulmányozhatja objektumának viselkedését a legkülönbözőbb állapotokban, amelyekkel szembesülhet.
Néhány szerző megkülönbözteti a gúnyokat és a gúny tárgyakat ( hamis ). A dummy objektumok a kettő közül egyszerűbbek, ugyanazt az interfészt valósítják meg, mint az általuk képviselt objektum, és előre definiált válaszokat adnak vissza. Így egy hamis objektum egy dugós módszereket kínál.
A The Art of Unit Testing könyvben a gúnyokat dummy objektumként írják le, amelyek lehetővé teszik annak eldöntését, hogy a teszt sikeres volt-e, annak ellenőrzésével, hogy történt-e interakció egy objektummal vagy sem. Az összes többi tárgy parafa. A dummy tárgyak bármi, ami nem valós. Ezt a terminológiát használva mind sapkák, mind gúnyolódások.
Ebben az értelemben a gúnyolódások valamivel többet tesznek: módszereik megvalósítása állításokat tartalmaz. Ez azt jelenti, hogy egy igazi gúny megvizsgálja a végrehajtandó metódushívások kontextusát, például a hívások argumentumaként átadott adatok tesztelésével.