2011-12-28 21 views
5

मुझे यह भी सुनिश्चित नहीं है कि कोई उपयोगिता है जो इसकी अनुमति देती है, लेकिन ऐसा लगता है कि ऐसी सामान्य आवश्यकता है?लाइव डेटा का उपयोग कर त्वरित रूप से नकली भंडार वस्तुओं को उत्पन्न करें? Moq

क्या कोई प्रोग्राम/लाइब्रेरी/घटक है जो मॉक किए गए .NET ऑब्जेक्ट्स (रिपॉजिटरीज़) उत्पन्न करेगा जो कुछ डेटाबेस कॉल के रूप में कुछ मॉक किए गए डेटा उत्पन्न करेगा।

मुझे विस्तृत करने की अनुमति दें: यदि मैं एक भंडार का परीक्षण कर रहा हूं (यूनिट परीक्षण नहीं, बस कंसोल विंडो में परीक्षण कर रहा हूं) और जब मैं अपने भंडार में चयन मानदंड पास करता हूं, तो यह ऑब्जेक्ट्स की एक सूची देता है। मैं ऑब्जेक्ट्स की उस सूची को कैप्चर करने और इसे स्थिर सेटअप सी # कोड में बदलने की क्षमता के लिए/चाहूंगा जो यूनिट टेस्ट के लिए सेटअप के रूप में कार्य करेगा। मेरी वस्तुएं शांत जटिल हैं और उन्हें ठीक से सेट करने में लंबा समय लगता है।

क्या यह संभव है? मेरी टीम Moq & निनजेक्ट

उत्तर

1

हाथ से लिखना दर्द हो सकता है लेकिन आपको केवल एक बार सही होने की आवश्यकता है। फिर प्रत्येक क्रमिक परीक्षण के लिए आप इनपुट संशोधित कर सकते हैं। मैं रनटाइम पर अपनी ऑब्जेक्ट्स को सहेजने या कैप्चर करने के लिए वैसे भी नहीं जानता। मुझे एक ऐसा वेबपेज मिला जो ऑटोमैकिंग के बारे में बात करता है जो आप कर सकते हैं। http://code.google.com/p/moq-contrib/wiki/Automocking

चीयर्स, एंड्रयू

1

इस जरूरत से निपटने के लिए अच्छा तरीके के एक जोड़े हैं।

सबसे पहले, आप पुनः जांच कर सकते हैं कि आप ऐसा क्यों करना चाहते हैं। यदि आपको अपने यूनिट परीक्षण को चलाने के लिए पूरी तरह कॉन्फ़िगर किया गया जटिल ऑब्जेक्ट होना आवश्यक है, तो हो सकता है कि आप बहुत अधिक परीक्षण करने की कोशिश कर रहे हों। कॉम्प्लेक्स सेटअप एक परीक्षण गंध है, और हो सकता है (या शायद नहीं) संकेत करता है कि आपको एक डिज़ाइन परिवर्तन करना चाहिए।

कभी-कभी ऐसा परिवर्तन करने के लिए संभव नहीं है, और कभी-कभी परीक्षण गंध वास्तव में एक डिज़ाइन परिवर्तन को इंगित नहीं करती है। उन मामलों में, आपकी सबसे अच्छी शर्त ऑब्जेक्ट्स को क्रमबद्ध करती है (जब आप कहते हैं "इसे स्थिर सेटअप सी # कोड में परिवर्तित करें", जिसे "इसे पुन: बनाने के लिए इसे सी # निर्देशों के रूप में क्रमबद्ध करें" के रूप में बहाल किया जा सकता है)। एक्सएमएल को क्रमबद्ध करने के लिए अपेक्षाकृत सरल तरीके हैं, मैं DataContract या XmlSerialization की अनुशंसा करता हूं, वे दोनों लागू करने और उपयोग करने में बहुत आसान हैं।