क्या यह टाइपमैक इस्लालेटर का उपयोग किए बिना किया जा सकता है? मुझे ऑनलाइन कुछ सुझाव मिल गए हैं जैसे मेटाडाटा केवल कनेक्शन स्ट्रिंग में गुजरना, हालांकि टाइपमैक के अलावा मैं कुछ भी नहीं आया हूं, वास्तव में एक मॉक ऑब्जेक्ट कॉन्टेक्स्ट के लिए अनुमति देता है जिसे यूनिट परीक्षण के लिए सेवाओं में इंजेक्शन दिया जा सकता है। क्या मैं TypeMock के लिए $$ नीचे डालता हूं, या क्या विकल्प हैं? क्या कोई भी टाइपमॉक से तुलनीय कुछ भी नहीं बना पाया है जो खुला स्रोत है?ईएफ 4 - यूनिट परीक्षण के लिए ऑब्जेक्ट कॉन्टेक्स्ट को मॉक करने के लिए संभव है?
उत्तर
मैं बिना किसी मजाक के ईएफ 4 यूनिट परीक्षण कर रहा हूं। मैंने जो किया वह http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/ से कोड के आधार पर एक रिपोजिटरी इंटरफ़ेस बना रहा था, इसके बाद मैंने InMemoryRepository<T>
क्लास बनाया जो IRepository
इंटरफ़ेस का उपयोग करता था। इसके बाद मैंने कक्षा के अंदर List<T>
के साथ IObjectSet<T>
को प्रतिस्थापित किया और तदनुसार पुनर्प्राप्ति विधियों को बदल दिया।
इस प्रकार यदि आपको इकाई परीक्षण करने की आवश्यकता है, तो DataRepository के बजाय InMemoryRepository में प्रवेश करें।
-1 Linq2Objects Linq2Entities के लिए अलग-अलग व्यवहार करता है। आप परीक्षण
पास करने का कोई तरीका नहीं है कि डेटाबेस तक पहुंच के बिना, इसलिए मुझे यकीन नहीं है कि आपका बिंदु क्या है। मॉकिंग का मतलब यह नहीं है कि आपकी Linq2Entities हमेशा मान्य रहेंगी और साथ ही साथ ठीक से काम करेंगी। – KallDrexx
अपने प्रश्नों को बचें और उन्हें एक वास्तविक डेटाबेस के खिलाफ परीक्षण करें। फिर अपने व्यापार तर्क का परीक्षण करते समय उन्हें नकली करें। इसलिए प्रत्येक क्वेरी एक पुन: प्रयोज्य घटक है जिसे आप जानते हैं कि एक तथ्य काम करेगा। और आपके व्यवसाय तर्क को अपेक्षित स्थिति में डेटाबेस की आवश्यकता के बिना परीक्षण किया जाता है। –
प्रॉक्सी क्लास में ऑब्जेक्ट कॉन्टेक्स्ट लपेटें। फिर अपने वर्गों में इंजेक्ट करें।
हां मैंने कोशिश की, और यह एक संभावना है - हालांकि प्रॉक्सी का उपयोग करने वाले इन सभी दृष्टिकोणों की अपनी सीमाएं हैं। लिंक एक चीज के लिए अलग-अलग काम करता है (लिंक से ऑब्जेक्ट्स का उपयोग किया जाता है, लिनक्स बनाम इकाइयों के लिए)। –
ट्रू, लेकिन यूनिट टेस्ट के लिए अलग-अलग लिंक कार्यान्वयन में अंतर लेने के लिए आपके यूनिट परीक्षणों की अपेक्षा करना कुछ हद तक ओवरबोर्ड लगता है। एकीकरण परीक्षण क्षेत्र में और क्या आपको नहीं लगता? – SamuelWarren
एक इंटरफ़ेस के पीछे अपनी Linq2Entity क्वेरी डालें, इकाई को वास्तविक डेटाबेस के विरुद्ध अलगाव में परीक्षण करें।
अपने क्वेरी इंटरफेस के लिए अपने व्यापार तर्क के लिए परीक्षण लिखें। लिंकक को अपने व्यापार तर्क में खून न होने दें!
रिपोजिटरी पैटर्न का उपयोग न करें!
मुझे नहीं लगता कि भंडार पैटर्न सवाल का एकमात्र जवाब है
मैं इस सवाल का जवाब पसंद आया (यह समस्या, सुनिश्चित करें कि बचा जाता है) - मैं एक मौजूदा codebase करने के लिए परीक्षण शुरू करने के लिए अधिक उपयुक्त लगता है Creating Interface for ObjectContext
- 1. ईएफ कोड के साथ यूनिट परीक्षण प्रथम डेटा कॉन्टेक्स्ट
- 2. सी # - यूनिट परीक्षण, मॉक?
- 3. ईएफ ऑब्जेक्ट कॉन्टेक्स्ट। सेव चेंज
- 4. ईएफ 4 - कस्टम ऑब्जेक्ट कॉन्टेक्स्ट और विरासत प्रश्न
- 5. एंटिटीफ्रेमवर्क 4, डीबीसेट और ऑब्जेक्ट कॉन्टेक्स्ट
- 6. मैं एक सुपरक्लास के __init__ को कैसे एक यूनिट परीक्षण के लिए एक मॉक ऑब्जेक्ट युक्त विशेषता बना सकता हूं?
- 7. यूनिट परीक्षण: मॉक की उपयोगिता ऑब्जेक्ट्स
- 8. यूनिट परीक्षण - क्या यूनिट टेस्ट कॉल करने के लिए यह खराब फॉर्म है अन्य यूनिट परीक्षण
- 9. अगली बार इसे कॉल करने के लिए कुछ अलग करने के लिए एक मॉकिटो मॉक ऑब्जेक्ट को कैसे बताना है?
- 10. सिल्वरलाइट 4 यूनिट परीक्षण
- 11. गहरे क्लोनिंग के लिए यूनिट परीक्षण
- 12. समय जटिलता को सत्यापित करने के लिए यूनिट परीक्षण
- 13. डेटा कॉन्टेक्स्ट ऑब्जेक्ट को 'रेफ' पैरामीटर के रूप में पास करने के लिए कोई डाउनसाइड्स?
- 14. उद्देश्य सी - यूनिट परीक्षण और मॉकिंग ऑब्जेक्ट?
- 15. ऑब्जेक्ट कॉन्टेक्स्ट पर अलग-अलग ईएफ 4 सेवऑप्शन का क्या प्रभाव पड़ता है?
- 16. ईएफ 4 कोड के साथ पहले ऑब्जेक्ट्स को देखने के लिए ऑब्जेक्ट कैसे करें?
- 17. एक्सकोड 4 यूनिट परीक्षण: क्या कुछ परीक्षण मामलों को अनदेखा करना संभव है?
- 18. ऑब्जेक्ट कॉन्टेक्स्ट
- 19. यूनिट टेस्ट टीयरडाउन के लिए ईएफ 4 में रोलबैक कैसे करें?
- 20. टीडीडी: क्या यह एकीकरण परीक्षण करने के लिए व्यवहार्य है, लेकिन कोई यूनिट परीक्षण नहीं है?
- 21. ईएफ 4, आंशिक कक्षाओं को जोड़ने के लिए
- 22. यूनिट परीक्षण के लिए विधि दृश्यता को बदलना ठीक है?
- 23. यूनिट परीक्षण - वांछित ऑब्जेक्ट स्थिति प्राप्त करने के लिए निजी सदस्यों को सेट करना
- 24. एक्सकोड 4 यूनिट परीक्षण और UIAutomation
- 25. ऑब्जेक्ट कॉन्टेक्स्ट
- 26. थ्रेड सुरक्षित-नस्ल के लिए यूनिट परीक्षण?
- 27. ईएफ 4 - प्रॉक्सी के बिना आलसी लोडिंग
- 28. एचटीएमएल आउटपुट के लिए यूनिट परीक्षण?
- 29. यूनिट परीक्षण के लिए टेस्ट डेटा फ़ाइलों के लिए पथ
- 30. Sybase डेटाबेस के लिए यूनिट परीक्षण उपकरण
मैंने जो सुझाव दिया है वह डीबी के खिलाफ परीक्षणों को फिर से तोड़ना है। लड़के ने कहा कि वह स्थानीय रूप से फ्लाई पर "नकली" डीबी उदाहरण बनाने के लिए CreateDatabase() का उपयोग करता है। आम तौर पर मैं इससे बचना चाहता हूं क्योंकि हमने इस नियम को एक पूर्व परियोजना पर तोड़ दिया था और यह इतना अच्छा काम नहीं कर पाया। यह लगभग 600 परीक्षणों तक ठीक था, लेकिन अंत में> 2000 परीक्षणों के साथ यह सच टीडीडी के लिए पूरी तरह बेकार था और हमने अब "बैच मोड" में परीक्षण चलाए और फिर (उन्हें चलाने के लिए 5 मिनट या अधिक समय लिया)। –