2011-09-09 8 views
34

आरएसपीईसी में आप या तो mock या double बना सकते हैं। ये दोनों लगभग एक ही चीज़ प्रतीत होते हैं और मुझे उन दस्तावेज़ों में कुछ भी नहीं मिल रहा है जो उन्हें असंबद्ध करते हैं।आरएसपीईसी में, नकली और डबल के बीच क्या अंतर है?

क्या अंतर है?

उत्तर

37

mock और stub अधिक सामान्य double के उपनाम हैं। context और describe की तरह, उन्हें चश्मे के इरादे को और स्पष्ट करने के लिए एक दूसरे के लिए उपयोग किया जा सकता है। यह The RSpec Book में बहुत अधिक विस्तार से वर्णित है।

+4

इसके अलावा प्रलेखन '' double' mock' और 'stub' से अधिक उपयोग करने के लिए सलाह देते हैं बहिष्कृत और फिर भविष्य के संस्करणों से हटा दिया गया है (https://www.relishapp.com/rspec/rspec-mocks/) – welldan97

+1

आरएसपीईसी के हाल के संस्करण भी चेतावनी उत्पन्न करते हैं जैसे 'डिप्लेक्शन: स्टब को बहिष्कृत किया गया है। इसके बजाए डबल का प्रयोग करें। '। – amoebe

2

aliases प्रतीत होता है क्योंकि :__declared_as का उपयोग प्रतीत नहीं होता है लेकिन संदेशों के लिए।

1

युगल

जब हम गैर नियतात्मक विशेषताओं के साथ घटकों पर निर्भर करती है, हम पा सकते हैं कि फ़ाइलें दूषित हो, डिस्क, असफल नेटवर्क समय समाप्त, और सर्वर को चलाए चश्मा के बीच में नीचे जाना। क्योंकि ये चीजें हैं जिन पर हमारा कोई नियंत्रण नहीं है, जब हम अपने चश्मा चलाते हैं तो वे असंगत और आश्चर्यजनक परिणाम ले सकते हैं। युगल इन उदाहरणों के वास्तविक कार्यान्वयन से हमारे उदाहरणों को डिस्कनेक्ट कर सकते हैं।

स्टब

जब सिस्टम व्यवहार अनुक्रम पर आधारित होता है। एक स्टब इसके लिए बिल्कुल सही है। क्योंकि प्रत्येक उदाहरण एक अलग अनुक्रम निर्दिष्ट कर सकता है। उदाहरण: - यादृच्छिक जनरेटर के मामले में, यह स्पष्ट रूप से गैर निर्धारण का स्रोत है। हम स्थिर अनुक्रम के साथ वास्तविक यादृच्छिक जनरेटर को प्रतिस्थापित करना चाहते हैं।

Mocks

कुछ समय हम एक और उद्देश्य यह है कि अभी तक अस्तित्व में नहीं हो सकता है से कुछ सेवा की जरूरत है। इस तरह के मामलों में हम नकली वस्तु पेश कर सकते हैं। जिसे हम उस ऑब्जेक्ट के रूप में व्यवहार करने के लिए प्रोग्राम कर सकते हैं जिसे हम वर्तमान में उम्मीद कर रहे हैं। इसलिए जब हम इंटरैक्शन मॉक ऑब्जेक्ट्स पर ध्यान केंद्रित करते हैं तो इसे हासिल करना अधिक आसान हो जाता है। तुम भी परीक्षण डबल्स बनाने के लिए नकली और ठूंठ तरीकों का उपयोग कर सकते हैं, हालांकि इन तरीकों केवल पिछली संगतता के लिए देखते हैं और संभावना होगी:

संबंधित मुद्दे