अद्यतन:सर्वश्रेष्ठ अभ्यास और परीक्षण योग्य नियंत्रकों
जवाब मैं प्राप्त हुआ है के एक जोड़े के आधार पर, मैं तो बस स्पष्ट करना है कि मुझे अच्छी तरह पता मजाक के बारे में जाने के लिए कैसे कर रहा हूँ चाहता हूँ एक मॉकिंग फ्रेमवर्क का उपयोग कर HttpContext। मुझे यह जानने में अधिक दिलचस्पी है कि HttpContext के मजाक करने के पेशेवरों और विपक्ष क्या हैं जब HttpContext के आसपास रैपर कक्षाओं का उपयोग करने की तुलना में।
मैं जब ASP.Net MVC में परीक्षण योग्य नियंत्रकों का निर्माण कैसे HttpContext से निपटने के लिए पर राय के लिए देख रहा हूँ। इस पर पढ़ने के बाद विचार के दो स्कूल होते हैं - या तो HttpContextBase का निर्माण करते हैं और अपने यूनिट परीक्षण के लिए आवश्यक स्टब्स/मैक्स उत्पन्न करने के लिए एक मॉकिंग फ्रेमवर्क का उपयोग करते हैं या HttpContext के उन क्षेत्रों के आसपास अज्ञेयवादी रैपर कक्षाएं बनाते हैं जिन्हें आप उपयोग करना चाहते हैं ।
अभी मैं HttpContextBase के निर्माण की दिशा में झुका रहा हूं। ऐसा लगता है कि यह तेजी से विकास प्रक्रिया और बनाए रखने में आसान है क्योंकि आपको अतिरिक्त रैपर वर्गों को विकसित करने और बनाए रखने में समय बिताना नहीं है। मैं देख सकता हूं कि रैपर वर्ग कैसे फायदेमंद हो सकते हैं क्योंकि वे अंतर्निहित कार्यान्वयन को दूर करते हैं और नियंत्रक के संदर्भ को अनुरोध से अलग रखते हैं - लेकिन मुझे यकीन नहीं है कि यह सेटअप और बनाए रखने के लिए अतिरिक्त ओवरहेड के लायक है या नहीं।
आप इन दो दृष्टिकोणों के बीच पेशेवरों और विपक्ष को क्या महसूस करते हैं और आप दूसरे पर एक कब चुनेंगे? क्या कुछ प्रकार के विकास हैं जो स्वयं को समाधानों में से किसी एक के मुकाबले ज्यादा उधार देते हैं?
जैसा कि यह एक आम समस्या की तरह लगता है, ज्यादातर टीम जो यूनिट परीक्षण और एएसपी.NET एमवीसी का उपयोग कर रही हैं, से निपटने के लिए, आप इस मुद्दे को संभालने के बारे में कैसे या कैसे गए होंगे? यदि आपने इस मुद्दे को संबोधित किया है, तो आपका समाधान कैसे काम करता है और अब आप अलग-अलग क्या करेंगे?
कुछ इसी तरह पहुंचते हैं? क्या आपने इसे बनाए रखने योग्य, व्यावहारिक, आदि पाया है? –
हाँ, यह मेरे लिए बहुत अच्छा काम करता है। चाल यह है कि इसे सभी कक्षा वर्गों में छुपाएं, जो आपके टेस्ट क्लास से प्राप्त होते हैं, इसलिए आप इसे एक बार करते हैं और इसके बारे में चिंता करने की ज़रूरत नहीं है। – Erik