2012-01-04 12 views
5

के लिए परीक्षण के लिए अलगाव फ्रेमवर्क मोल्स के बारे में अच्छी चीजें पढ़ने के बाद मैं यूनिट परीक्षण लिखने के लिए टूल के हमारे सेट में एक अलगाव फ्रेमवर्क जोड़ना चाहता हूं।मोनो

हमारा आवेदन मोनो के तहत चलता है क्योंकि यह लिनक्स और विंडोज दोनों पर तैनात है और मुझे मोनो का समर्थन करने वाले ढांचे को नहीं मिल रहा है।

मैंने सेसिल का उपयोग करके असेंबली में हेरफेर करने के बारे में कुछ लेख देखे हैं, लेकिन मैं कुछ भी खोजने के लिए संघर्ष कर रहा हूं जिसे हम वास्तविक रूप से उपयोग कर सकते हैं।

उत्तर

4

ऐसा लगता है कि मोल्स जेआईटी का उपयोग करके काम करता है, इसलिए मुझे उम्मीद है कि यह माइक्रोसॉफ्ट के कार्यान्वयन से बहुत बंधेगा।

मुझे मोनो पर Moq का उपयोग करके सफलता मिली है, बहुत कम प्रयास के साथ लगभग किसी भी वर्ग का प्रॉक्सी उदाहरण बनाना और लगभग सभी विधि कॉल को रोकना संभव है। Moq के latest binary version मेरे लिए मोनो पर बहुत अच्छी तरह से काम करता है।

using Moq; 

var mock = new Mock<MyClass> { CallBase = true }; 
mock.Setup(x => x.MyMethod()).Returns (1); 

सेटअप बातें करने के Moq इस्तेमाल करने के बाद मैं आम तौर पर NUnit उपयोग करने के लिए पसंद करते हैं लेकिन आप किसी भी अन्य परीक्षण ढांचे का उपयोग कर सकते हैं।

+0

आपके इनपुट, इयान के लिए धन्यवाद। हां, मैंने मोनो के साथ चल रहे मोल्स को देखने की कोशिश भी नहीं की है क्योंकि मुझे लगता है कि यह असफल होने जा रहा है। हम पहले से ही Moq का उपयोग कर रहे हैं, जो मुझे लगता है कि शानदार है लेकिन मैं ऐसे टूल ढूंढ रहा हूं जो मुझे डेटटाइम से निपटने की अनुमति दें.अब टाइप करें। मुझे पूरी तरह से पता है कि मैं प्रॉक्सी कक्षाओं में उदाहरण विधियों के पीछे स्थैतिक तरीकों को लपेट सकता हूं लेकिन मुझे यकीन नहीं है कि यह सभी परिदृश्यों में सबसे सुंदर समाधान है। – sebjsmith

+0

ओह, स्थैतिक विधि अवरोध .. यह मुश्किल है – IanNorton

+0

क्या आपने अपनी विधियों में प्री/पोस्ट हुक जोड़ने के लिए पोस्टशर्प का उपयोग करना देखा है? – IanNorton

0

@ManNorton के उत्तर पर आपकी टिप्पणियों को जोड़ने पर TypeMock आपकी एकमात्र पसंद है।

+1

मुझे विश्वास नहीं है कि TypeMock मोनो का समर्थन करता है। – sebjsmith

+0

यदि टाइपमोक मोनो पर काम नहीं करता है तो संभवतः आपके पास प्रॉक्सी कक्षाओं की तुलना में बिल्कुल कोई अन्य विकल्प नहीं है। –