मैं अपने ऐप का परीक्षण करने के लिए ओसीएमॉक का उपयोग करने की कोशिश कर रहा हूं। लेकिन मैं उलझन में हूं जहां हमें उम्मीद का उपयोग करना चाहिए और स्टब का उपयोग कहां करना चाहिए? क्या कोई मदद कर सकता है?ओसीएमॉक अपेक्षा और स्टब विधियों में क्या अंतर है?
6
A
उत्तर
13
मूल अंतर यह है: आप expect
चीजें हैं जो होना चाहिए, और stub
चीजें हैं जो हो सकता है।
नकली ऑब्जेक्ट्स विफल होने के 2 तरीके हैं: या तो एक अप्रत्याशित/अस्थिर विधि कहा जाता है, या अपेक्षित विधि नहीं कहा जाता है।
- अप्रत्याशित आमंत्रण। जब एक नकली वस्तु को एक संदेश प्राप्त होता है जिसे या तो दबाया या अपेक्षित नहीं किया गया है, तो यह तुरंत अपवाद फेंकता है और आपका परीक्षण विफल हो जाता है।
- अपेक्षित आमंत्रण। जब आप अपने मॉक (आमतौर पर आपके परीक्षण के अंत में)
verify
पर कॉल करते हैं, तो यह सुनिश्चित करने के लिए जांच करता है कि आपके द्वारा अपेक्षित सभी विधियों को वास्तव में बुलाया गया था। यदि कोई नहीं था, तो आपका परीक्षण विफल हो जाएगा।
इस प्रकार के व्यवहार को बदलने वाले दो प्रकार के मोजे हैं: अच्छे मोजे और आंशिक मोक्स। अच्छे मोजे आपको विधियों को रोकने के लिए रोकते हैं - मूल रूप से वे अप्रत्याशित चालान होने देते हैं। आंशिक मोक्स वास्तविक वस्तुओं को भेजे गए संदेशों को अवरुद्ध करने का एक तरीका है। किसी भी संदेश जो आप आंशिक नकली पर उम्मीद करते हैं या स्टब करते हैं, नकली वस्तु को भेजा जाएगा। अन्य सभी संदेश वास्तविक वस्तु को भेजे जाते हैं। अच्छे मोजे और आंशिक मोक्स दोनों के लिए, आपको अप्रत्याशित आमंत्रण (ऊपर नियम # 1) पर परीक्षण विफलता नहीं मिलेगी।