आपने तीन तकनीकों का हवाला दिया है जो सभी ऐसा करने का इरादा रखते हैं: मौजूदा कोडबेस को कार्यान्वित किए बिना कार्यक्षमता जोड़ें।
ASP.NET MVC और डि दोनों पर सीमाओं डाल आप पहलुओं (नाम फिल्टर या इंटरसेप्टर) हो सकता है जहां क्योंकि प्रौद्योगिकी केवल कुछ स्थानों पर व्यवहार जोड़ने में सक्षम है, यह देखते हुए वे अपने कोड को संपादित नहीं कर सकते। केवल पोस्टरहर्प जैसी कंपाइलर-आधारित प्रौद्योगिकियों में हर जगह पहलुओं को जोड़ने की क्षमता है। हालांकि, सभी तीन एओपी अवधारणाओं के कार्यान्वयन हैं।
पहलुओं ने कई उपयोग मामलों में पारंपरिक ऑब्जेक्ट उन्मुख प्रोग्रामिंग पर लाभ साबित किए हैं। यह सच नहीं है कि पारंपरिक ओओपी द्वारा एक ही कीमत पर बेहतर डिजाइन के साथ हर एक समस्या हल की जा सकती है। हालांकि, यह सही है कि एओपी मुख्यधारा नहीं है, और गैर-मुख्यधारा प्रौद्योगिकी का उपयोग करने के लिए लागत और जोखिम हैं (एओपी का जन्म 90 के दशक में हुआ था और 60 के दशक में ओओपी)। किसी भी नवाचार के साथ, विभिन्न कलाकारों के जोखिम और लाभ के बीच अलग-अलग संवेदनशीलता होती है, इसलिए जल्दी या देर से गोद लेने वाले बन सकते हैं।
एओपी इकाई परीक्षण में बाधा नहीं है, लेकिन इस विषय पर थोड़ा साझा अनुभव नहीं है। आम तौर पर, पहलुओं को कोड की अलग इकाइयों के रूप में परीक्षण किया जाना चाहिए। आवश्यक और अनिवार्य पहलू हैं।आम तौर पर, व्यावसायिक कोडों को आवश्यक पहलुओं के साथ परीक्षण किया जाना चाहिए, लेकिन गैर-आवश्यक पहलुओं को अक्षम किया जाना चाहिए। आप बिल्ड समय पर स्थिर रूप से पहलुओं को अक्षम कर सकते हैं (केवल बिल्ड कॉन्फ़िगरेशन से कुछ पहलू को बाहर कर सकते हैं), या रन टाइम पर (कुछ स्थैतिक चर पर निर्भर पहलू को बनाते हैं जिसे आपने परीक्षण के दौरान गलत पर सेट किया है)।
स्रोत
2013-02-26 09:26:16
समय इंजेक्शन संकलन इकाई परीक्षण के साथ हस्तक्षेप कैसे करता है? आप संकलित किए बिना यूनिट परीक्षण भी नहीं करेंगे? – jfar
@jfar: संकलन के दौरान पहलुओं के साथ आपका उत्पादन कोड एक साथ बुना हुआ है। इसके कारण आप अलगाव में अब अपने उत्पादन कोड का परीक्षण नहीं कर सकते हैं। जब एक यूनिट टेस्ट कुछ उत्पादन कोड को कॉल करता है, तो पहलुओं को हमेशा लागू किया जाएगा। वास्तव में, आप इकाई परीक्षण नहीं कर सकते हैं, क्योंकि परिभाषा के अनुसार एक इकाई परीक्षण अलगाव में चलता है। आपके पास एकीकरण परीक्षण होगा। अब अपने डाउनवोट को पूर्ववत करना पसंद है? – Steven
आपका कोड हमेशा संकलक द्वारा उत्पादन किया जाता है, उत्पादन और इकाई परीक्षण संभवतः कंपाइलर द्वारा विभिन्न संस्करण प्राप्त कर सकता है ताकि सजावटी या डी या कुछ भी हो। इस जवाब में दोष यह है कि एओपी या पोस्टशर्प यूनिट परीक्षण को किसी अद्वितीय या उल्लेखनीय तरीके से प्रभावित नहीं करता है। – jfar