2009-03-27 16 views
43

मुझे Moq और Rhino की विशिष्ट सुविधा-दर-सुविधा तुलना नहीं मिल रही है। सभी प्रश्न "आप कौन सा बेहतर पसंद करते हैं और क्यों", या "यहां आप गैंडो में एक साधारण नकली कैसे करते हैं और यह कैसे किया जाता है"।Moq और Rhino.mocks की क्षमताओं क्या हैं?

मुझे कहीं भी गहरी तुलना नहीं मिल रही है। मैं वाक्यविन्यास मतभेदों से अवगत हूं, मैं इसके बारे में जवाब नहीं ढूंढ रहा हूं। मैं एक क्षमता तुलना की तलाश में हूं। उदाहरण के लिए:

  • राइनो Expect.On() थ्रेडेड मजाक के लिए है। क्या मोक ऐसा कर सकता है?

  • मल्टी-मॉकिंग (एकाधिक इंटरफेस को एक नकली के साथ कार्यान्वित करने के बारे में)। क्या मोक ऐसा कर सकता है?

  • मेरा मानना ​​है कि मोक अब संरक्षित सदस्यों का नकल कर सकता है। क्या राइनो ऐसा कर सकता है?

संपादित: मैं भी अन्य नेट चौखटे में से कुछ को देख समाप्त हो गया।

+0

यह भी देखें http://stackoverflow.com/questions/642620/what-should-i-consider-when-choosing-a-mocking-framework-for-net –

+0

- जांचें [यहां] (http: // कोड moq सुविधाओं के लिए .google.com/p/moq/wiki/QuickStart) - राइनो मोक्स के लिए जांचें [यहां] (http://ayende.com/projects/rhino-mocks.aspx) – rguerreiro

उत्तर

88

उन लोगों के लिए धन्यवाद जिन्होंने पिछले कुछ हफ्तों में जवाब दिया था। मैंने अपने निष्कर्षों के बारे में एक ब्लॉग पोस्ट लिखना समाप्त कर दिया, क्योंकि मुझे इतना खोदना पड़ा कि ऐसा लगता है कि मैं दूसरों की मदद करने की उम्मीद में उन्हें सारांशित कर सकता हूं। चार्ट मैं पोस्ट मेरी निष्कर्षों का आयोजन:

alt text

एक चेतावनी है, जो मैं ब्लॉग पोस्ट में पर छुआ, कि चार्ट क्षमताओं जाँच के लिए उपयोगी है, लेकिन सबसे चौखटे को वास्तविक लाभ उनके अद्वितीय हैं विशेषताएं। मैंने उपयोग में आसान एपीआई के कारण अंत में मोक चुना। साथ ही, सभी जानकारी त्रुटियों और परिवर्तन के अधीन है - यदि आप चार्ट पर कुछ से असहमत हैं, तो कृपया एक टिप्पणी पोस्ट करें।

+0

के साथ बहुत अच्छा है मैंने चार्ट को थोड़ा अपडेट किया। अगले कुछ समय में इसमें कुछ संशोधन हो सकते हैं, मेरे पास कुछ अन्य अतिरिक्त लाइन आइटम हैं जिन्हें जोड़ा जा सकता है। – womp

+3

+1 अच्छा चार्ट, एक अच्छा सारांश बनाता है – zombat

+0

अरे @ womp, क्या आप चार्ट को पुनः अपलोड कर सकते हैं? लिंक कुछ जापानी साइन पर रीडायरेक्ट कर रहा है ;-) –

2

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

+0

मुझे वास्तव में यह पता चलता है चीजों में से एक है जो राइनो को कड़ी मेहनत करता है। लगभग सभी दस्तावेज पुराने वाक्यविन्यास के लिए हैं, इसलिए आप उदाहरणों को देखते समय उन्हें मिश्रण करते हैं, जिससे सभी प्रकार की अजीब त्रुटियां होती हैं:/ – womp

+2

सहमत हैं।ऐसा लगता है जैसे उन्होंने इसे करने के "पुराने" तरीके को हटाए बिना कुछ चीजों को कई तरीकों से करने की कोशिश की है। मुझे लगता है कि यह संगतता के लिए है। मुझे ईमानदारी से एमओक्यू की बहुत अच्छी समझ है क्योंकि यह नकली या नकली और कोई फंकी वाक्यविन्यास को अलग करने की कोशिश नहीं करता है। एमओक्यू – rball

1

राइनो के पास GetArgumentsForCallsMadeOn() है जो आईएमओ कुछ मामलों में तर्कों को सत्यापित करना आसान बनाता है।

-1

मैं इन में "व्यवहार सत्यापन" जोड़ सकता हूं। ऐसा लगता है कि मोक की सबसे बड़ी सीमा है, जो राइनो (दूसरों के बारे में निश्चित नहीं है) में कोई समस्या नहीं है।

+2

Moq में व्यवहार सत्यापन के बारे में क्या सीमित है? मैंने अभी तक किसी भी सीमा में भाग नहीं लिया है। यह सत्यापित() और VerifyAll() है, और आप किसी भी सेटअप() कॉल को वापसी मूल्य के बावजूद सत्यापित करने के लिए सेट कर सकते हैं। – womp

0

बस पूर्णता के लिए मैं ध्यान दूंगा कि अब CodePlex पर NMock3 है। यह NMock2 से आसान माइग्रेशन है, NMock3.dll के संदर्भ के साथ संदर्भ को NMock2.dll पर प्रतिस्थापित करें। यह रीफैक्टरिंग के लिए प्रकार सुरक्षा और समर्थन जोड़ता है।