मैं एएसपी.नेट एमवीसी नियंत्रक विधियों के लिए यूनिट परीक्षण लिख रहा हूं।क्या मुझे अपने यूनिट परीक्षणों में ऑटोमैपर का उपयोग करना चाहिए?
उन नियंत्रकों की IMapper
पर निर्भरता है - एक इंटरफ़ेस जिसे मैंने ऑटो ऑटोपरपर बनाया है, कैसल विंडसर का उपयोग करके कन्स्ट्रक्टर इंजेक्शन के माध्यम से पारित किया गया है।
कार्य विधियां IMapper
का उपयोग डोमेन ऑब्जेक्ट्स से व्यूमोडेल ऑब्जेक्ट्स में मैप करने के लिए और फिर से वापस करने के लिए करती हैं, जिससे चीजों को DRY रखने और क्रिया विधियों को संक्षिप्त रखने का लक्ष्य रखा जाता है।
मेरी इकाई परीक्षण में, मैं
कॉन्फ़िगर सही बाइंडिंग के साथ AutoMapper (वे AutoMapper प्रोफ़ाइल का उपयोग, इसलिए परीक्षण योग्य और वेबसाइट और इकाई परीक्षण परियोजनाओं के बीच पुन: प्रयोज्य बनाया कर रहे हैं) और उस में पास करना चाहिए एक के रूप में
IMapper
का उचित ऑटोमैपर कार्यान्वयन।परीक्षण के आधार पर
IMapper
उदाहरण के लिए नकली वस्तुओं (मैं Moq का उपयोग कर रहा हूं) में पास करता हूं (इसका मतलब यह होगा कि परीक्षण सेटअप कोड में कुछ काम डुप्लिकेट करना सुनिश्चित करने के लिए कि नकली मैपर से लौटाई गई वस्तुओं से संबंधित है ऑब्जेक्ट्स मॉक मैपर मानचित्र का नाटक कर रहा है)।केवल मैपिंग के साथ ऑटोमैपर को कॉन्फ़िगर करें मुझे लगता है कि मुझे प्रत्येक टेस्ट के लिए आवश्यकता होगी (बहुत सारे काम और साधन मैं मैपिंग का परीक्षण नहीं कर रहा हूं जो वास्तव में उपयोग में होंगे)।
इकाई परीक्षणों में आधारभूत संरचना कोड का उपयोग करने पर क्या राय है? यह किस बिंदु पर एकीकरण परीक्षण बनता है (यानी ऑटोमैपर और मेरे नियंत्रकों का परीक्षण एकीकरण)?
ऐसा लगता है कि 2 शुद्धवादी दृश्य है, हालांकि मुझे लगता है कि मुझे मोक के बारे में अधिक जानने की आवश्यकता है और इसे उन मूल्यों को वापस करने के लिए कैसे प्राप्त करना है जो उन तरीकों से गुजरने वाले वास्तविक मूल्यों से संबंधित हैं।
यदि आप एक रिपोजिटरी पैटर्न का उपयोग कर रहे हैं, तो क्या मैं आपको इंगित कर सकता हूं ... http://rileytech.net/post/2010/08/17/Mock-Utility-creating-those-basic-services.aspx - - अंतिम दो फाइलों का उपयोग करें या इसे पूर्ण उदाहरण के रूप में उपयोग करें :-) – jeriley