इस संदर्भ में, "मॉक" शब्द का प्रयोग "मॉक" के स्थान पर किया जाता है, लेकिन स्पष्टता और सटीकता के लिए, लेखक को "मॉक" का उपयोग करना चाहिए, क्योंकि "मॉक" एक प्रकार का स्टब है, लेकिन परीक्षण के लिए। आगे भ्रम से बचने के लिए, हमें यह परिभाषित करने की आवश्यकता है कि स्टब क्या है।
सामान्य संदर्भ में, एक स्टब प्रोग्राम का एक टुकड़ा है (आमतौर पर एक फ़ंक्शन या ऑब्जेक्ट) जो किसी अन्य प्रोग्राम (आमतौर पर किसी अन्य मशीन, वीएम या प्रक्रिया पर स्थित) को लागू करने की जटिलता को घेरता है - लेकिन हमेशा नहीं, यह एक स्थानीय भी हो सकता है वस्तु)। क्योंकि आम तौर पर आह्वान करने का वास्तविक कार्यक्रम समान मेमोरी स्पेस पर स्थित नहीं है, इसलिए इसे लागू करने के लिए कई ऑपरेशनों की आवश्यकता होती है जैसे कि वास्तविक रिमोट इनवॉइस करना, डेटा / तर्कों को क्रमबद्ध / निष्क्रिय करना (और संभावित परिणाम के साथ ही) शायद प्रमाणीकरण / सुरक्षा आदि से भी निपटना। ध्यान दें कि कुछ संदर्भों में, स्टब्स को परदे के पीछे भी कहा जाता है (जैसे जावा में गतिशील परदे के पीछे)।
एक मॉक एक बहुत ही विशिष्ट और प्रतिबंधक प्रकार का स्टब है, क्योंकि एक मॉक परीक्षण के लिए किसी अन्य फ़ंक्शन या ऑब्जेक्ट का प्रतिस्थापन है। व्यवहार में हम अक्सर परीक्षण वातावरण में एक दूरस्थ कार्यक्रम को बदलने के लिए स्थानीय कार्यक्रमों (कार्यों या वस्तुओं) के रूप में नकली का उपयोग करते हैं। किसी भी स्थिति में, नकली प्रतिबंधित संदर्भ में प्रतिस्थापित कार्यक्रम के वास्तविक व्यवहार का अनुकरण कर सकता है।
अधिकांश प्रसिद्ध प्रकार के स्टब्स स्पष्ट रूप से वितरित प्रोग्रामिंग के लिए हैं, जब दूरस्थ प्रक्रियाओं ( आरपीसी ) या दूरस्थ वस्तुओं ( आरएमआई , कॉर्ब ) को आह्वान करने की आवश्यकता होती है । अधिकांश वितरित प्रोग्रामिंग चौखटे / पुस्तकालय स्टब्स की पीढ़ी को स्वचालित करते हैं ताकि आपको उन्हें मैन्युअल रूप से लिखना न पड़े। उदाहरण के लिए IDL के साथ लिखे गए इंटरफ़ेस परिभाषा से स्टब्स उत्पन्न किया जा सकता है (लेकिन आप इंटरफेस को परिभाषित करने के लिए किसी भी भाषा का उपयोग कर सकते हैं)।
आमतौर पर, RPC, RMI, CORBA, और इसी तरह, एक ग्राहक-साइड स्टब्स को अलग करता है , जो ज्यादातर तर्क-वितर्क करने या रिमोट इन्वोकेशन करने, और सर्वर-साइड स्टब्स का प्रदर्शन करने का ध्यान रखता है, जो ज्यादातर अनमैर्शिंग / डीसरियलाइजिंग का ध्यान रखते हैं। तर्क और वास्तव में दूरस्थ फ़ंक्शन / विधि को निष्पादित करते हैं। जाहिर है, क्लाइंट स्टब्स क्लाइंट की तरफ स्थित होते हैं, जबकि गंभीर स्टब्स (अक्सर कंकाल कहा जाता है) सर्वर साइड पर स्थित होते हैं।
वस्तु कुशल संदर्भों के साथ व्यवहार करते समय अच्छे कुशल और सामान्य स्टब्स लिखना काफी चुनौतीपूर्ण हो जाता है। वितरित वस्तुओं के संदर्भों के साथ आरएमआई और कॉर्बा जैसे अधिकांश वितरित ऑब्जेक्ट फ्रेमवर्क, लेकिन उदाहरण के लिए आरईएसटी वातावरण में कुछ प्रोग्रामर इससे बचते हैं। आमतौर पर, REST वातावरण में, जावास्क्रिप्ट प्रोग्रामर AJAX इनवोकेशन (ऑब्जेक्ट क्रमांकन द्वारा समर्थित JSON.parse
और JSON.stringify
) का उपयोग करने के लिए सरल स्टब फ़ंक्शंस बनाते हैं । स्वैगर Codegen परियोजना स्वचालित रूप से विभिन्न भाषाओं में बाकी स्टब्स पैदा करने के लिए एक व्यापक सहायता प्रदान करता है।