2012-06-19 22 views
18

पर नकल करने की कोशिश करने के लिए कुछ सलाह चाहिए। मेरे पास कुछ कोड है जो कुछ आरएसएस फ़ीड डाउनलोड करता है।किसी .NET वेब क्लाइंट या समकक्ष

मैं WebClient या Argotic.Syndication.RssFeed लाइब्रेरी का उपयोग करके किया गया है।

लेकिन इन mockable नहीं हैं :(

मैं निश्चित रूप से वास्तविक आरएसएस फ़ीड हर बार जब मैं इकाई परीक्षण चलाने के हिट करने के लिए नहीं करना चाहती।

किसी को भी किसी भी सुझाव है कि मैं क्या कर सकते हैं करने के लिए है क्या ज़रूरत है?

मैं एक बुराई आवरण बनाने की जरूरत? यदि ऐसा है .. इस पर सुझाव है?

उत्तर

16

मैं हर बाहरी निर्भरता के लिए एक आवरण बनाने (अगर यह व्यावहारिक है) के लिए जाना। इसलिए, फाइल सिस्टम/एक webservice/डेटाबेस के साथ हर बातचीत केवल एक इंटरफ़ेस के माध्यम से की जानी चाहिए, जिससे अधिक टेस्टेबल कोड हो जाएगा।

निश्चित रूप से एक अन्य समाधान (हमेशा की तरह) Typemock Isolator है।

19

किसी को भी मैं क्या कर सकता के लिए किसी भी सुझाव हैं?

सार एक अंतरफलक के पीछे वास्तविक HTTP कॉल। फिर WebClient का उपयोग करके इस इंटरफ़ेस का एक प्रवर्तन लिखें। अब अपनी मुख्य कक्षा इस इंटरफेस को निर्भरता के रूप में ले लो। अब आप इकाई इंटरफ़ेस में इस इंटरफ़ेस को नकल कर सकते हैं और अपने निर्भरता इंजेक्शन फ्रेमवर्क को रनटाइम पर सही कार्यान्वयन को इंजेक्ट कर सकते हैं।

+6

आपके साथ सहमत हैं। उदाहरण: [मॉकिंग सिस्टम.Net.WebClient] (http://brunov.info/blog/2013/07/30/tdd-mocking-system-net-webclient/)। –