2009-04-28 12 views
7

के साथ moq का उपयोग करने वाले अनुभव मुझे वास्तव में moq mocking ढांचे पसंद है। मैंने इसे कई परियोजनाओं पर इस्तेमाल किया है। दुर्भाग्यवश, मेरे ग्राहकों में से एक मांग कर रहा है कि हम वीबी.Net का उपयोग करें। मेरी वरीयता नहीं, लेकिन हे, नेट है। नेट, है ना?वीबी.Net

मैंने सुना है कि एमओसी को वीबी के साथ कुछ परेशानी है। क्या ये सच है? क्या ऐसा है, किस तरह की परेशानी? मैं उम्मीद करता हूं कि यह नेट की भाषा अज्ञेय प्रकृति को ठीक से काम करेगी।

क्या मुझे वीबी के साथ उपयोग के लिए कुछ अन्य मॉकिंग फ्रेमवर्क का उपयोग करना चाहिए?

उत्तर

6

मजाक चौखटे के संबंध में VB.net का मुख्य समस्या यह है कि, सी # के विपरीत, वीबी गुमनाम तरीकों, केवल लैम्ब्डा भाव (एक गुमनाम कार्रवाई प्रतिनिधि घोषित करने के लिए कोई रास्ता नहीं है) नहीं है।

यह संभावनाओं को गंभीर रूप से सीमित करता है। पैरामीटर वाले गुणों के साथ एक ज्ञात समस्या भी है।

इसके अलावा, लैम्बडास के लिए भाषा का सिंटैक्स सी # के रूप में साफ नहीं होता है, पठनीयता-वार (कोई आग नहीं है, मैं एक वीबी उपयोगकर्ता हूं और मुझे हर दिन कुछ सी # विशेषताएं याद आती हैं), और यह आंशिक रूप से है Moq के लिए आकर्षण।

वीबी के संबंध में कुछ ऐसा करने वाला एकमात्र परीक्षण ढांचा TypeMock है। उन्होंने वीबी सिंटैक्स के साथ मिश्रण करने वाली कुछ चीज़ों को डिजाइन करने की कोशिश की।

+0

पैरामीटरयुक्त गुणों के साथ किस प्रकार की समस्या है? –

+0

मैं 61 जारी करने का जिक्र कर रहा हूं: http://code.google.com/p/moq/issues/detail?id=61 मुझे नहीं पता कि इसे उठाए जाने के बाद से इसका ख्याल रखा गया है या नहीं। –

+3

_ "सी # के विपरीत, वीबी [.NET] में अनाम विधियां नहीं हैं, केवल लैम्ब्डा एक्सप्रेशन (अज्ञात एक्शन प्रतिनिधि घोषित करने का कोई तरीका नहीं है)।" _ - मुझे लगता है कि वीबी.नेट 10 (अप्रैल में वीएस 2010 के साथ जारी) 2010), यह अब सत्य नहीं है: अब आप अनाम 'सब की जगह, यहां तक ​​कि बहु-लाइन वाले भी लिख सकते हैं। - मैं शब्दावली "लैम्ब्डा अभिव्यक्ति" बनाम "अज्ञात कार्य प्रतिनिधि" से भी असहमत हूं। सी # और वीबी.नेट दोनों में, अज्ञात प्रतिनिधि मूल रूप से लैम्ब्डा कार्यों के समान ही होते हैं; केवल वाक्यविन्यास थोड़ा अलग हो सकता है। – stakx

1

AFAIK Typemock Isolator एकमात्र ऐसा टूल है जो पूरी तरह से VB.NET का नकल कर सकता है। उन्होंने विशेष रूप से इसके लिए एक एपीआई बनाया।

+1

हाँ। उदाहरण यहां है: http://site.typemock.com/vbpage/2009/9/10/unit-testing-vbnet.html – RoyOsherove

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