तुम सिर्फ दो अलग-अलग कॉल के लिए स्टब वस्तु प्रोग्राम किया है। अगर आप stubObj को दोबारा कॉल करते हैं, तो आपको Guid.NewGuid
जेनरेट करना चाहिए। आप विभिन्न प्रकार के आमंत्रणों के लिए अपनी नकली वस्तु तैयार कर सकते हैं। इस कारण से, पिछले .Stub
उस कॉल के पिछले .Stub
बिंग को प्रतिस्थापित करने के लिए दिए गए आमंत्रण के लिए कॉल करने की अपेक्षा करने के लिए यह समझ में नहीं आता है।
अपने परीक्षण कोड में, जो छोटा और साफ होना चाहिए, वहां ऐसा कोई मामला नहीं होना चाहिए जहां आपको ऐसा करने के लिए नकली के ऐसे प्रोग्रामिंग को 'पूर्ववत' करने की आवश्यकता हो।
यदि वापस लौटने की आवश्यकता है तो एक सशर्त चीज है जो कोड के इस ब्लॉक में कई कॉलों पर आपके परीक्षण कोड के अन्य बिट्स के आधार पर भिन्न होती है, आखिरी चीज जो आप चाहते हैं वह जादू है जिससे पाठकों को यह पता लगाना पड़ता है कि आप क्या कर रहे हैं का मतलब है। यदि यह सशर्त है, तो आपको इसे स्पष्ट करना चाहिए।
और तब, जब आप यह स्पष्ट है, यह refactor बाहर के रूप में आप टेस्ट में सशर्त तर्क नहीं करना चाहिए था बनाया है (XUnit टेस्ट पैटर्न देखें)
स्रोत
2010-02-19 09:40:17
मैं काफी समझ में नहीं आता क्यों तुम 'के ऊपर लिख' के लिए एक उम्मीद हैं:
यहां ऐसे कुछ तरीके "के ऊपर लिख" के बाद दूसरे स्थान के साथ पहली बार उम्मीद कर रहे हैं। व्यवहार मेरे लिए ठीक लगता है। सिर्फ मुझसे एक अटकलें: यदि आप किसी अन्य दावे के लिए एक स्टब का पुनः उपयोग या रीसायकल करने का प्रयास कर रहे हैं, तो आपको ऐसा नहीं करना चाहिए। परीक्षण लिखने के लिए यह एक अच्छा अभ्यास नहीं होगा। –