2013-03-14 6 views
8

मैं अपने यूनिट परीक्षणों के लिए Moq का उपयोग करता हूं। आंतरिक इंटरफेस का परीक्षण करने के लिए मुझे डायनेमिकप्रॉक्सिजेनएस्परब्स 2 असेंबली में InternalsVisibleTo विशेषता घोषित करना होगा।डायनामिकप्रॉक्सिजेनएस्परब्स 2 असेंबली क्या है?

हम अपने परीक्षण obfuscated चलाते हैं, जो उपयोगी है क्योंकि हम इस दृष्टिकोण के साथ obfuscation के साथ कुछ समस्याएं मिल सकती है। DynamicProxyGenAssembly2 असेंबली के कारण मेरा घटक obfuscated नहीं है।

इसलिए मुझे पता होना चाहिए कि डायनामिकप्रॉक्सिजेनएस्परब्स 2 असेंबली क्या है? मैं इसे अपनी डिस्क पर कहीं भी नहीं मिला। क्या यह moq.dll में संकलित है या यह रनटाइम पर उत्पन्न होता है? शायद अगर मुझे पता है कि यह असेंबली क्या है, तो हम अपनी समस्या को हल करने के लिए एक रास्ता खोजते हैं। क्या किसी को भी एक ही समस्या का सामना करना पड़ा है?

कृपया यह न सुझाव दें कि हमें अपने परीक्षणों को अनबॉस्केटेड चलाने की आवश्यकता है। इस बिंदु पर यह कोई विकल्प नहीं है।

संपादित

DynamicProxyGenAssembly2 कार्यावधि में उत्पन्न होता है। डॉटफुस्केटर को संतुष्ट करने के लिए मोक के बगल में एक खाली डीएल डाल दिया है। इसके अतिरिक्त हमें आपकी सार्वजनिक कुंजी का उपयोग करने के लिए Castle.Core dll को संशोधित करना पड़ा। पिछली समस्याओं का जवाब here था। इसके साथ हम समस्याओं के बिना obfuscated हमारे सभी परीक्षण चला सकते हैं।

सम्मान, Yggdrasil।

उत्तर

13

डायनामिकप्रॉक्सिजेनएस्परब्स 2 एक अस्थायी असेंबली है जो मॉकिंग सिस्टम द्वारा बनाई गई है जो कैसलप्रॉक्सी का उपयोग मोक या एनएसबीएसआईटीटी जैसी करती है। यह तब उत्पन्न होता है जब परीक्षण की आवश्यकता के बाद नकली की आवश्यकता होती है और इसका निपटारा किया जाता है।

बेनकाब Internals विधि है की तुलना में एक RhinoMocks समाधान है कि कम से कम परिवर्तन के साथ अपने Moq एक के लिए काम करेंगे के लिए के रूप में:

http://ayende.com/Wiki/Rhino+Mocks+-+Internal+Methods.ashx?AspxAutoDetectCookieSupport=1

संबंधित मुद्दे