2009-04-02 13 views
19

मैं अपने डेटाबेस तक पहुंचने के लिए इकाई ढांचे का उपयोग कर रहा हूं और मैं अपने यूनिट परीक्षणों के अंदर डेटाबेस संदर्भ का नकल करना चाहता हूं ताकि मैं अपने मध्यम स्तर के वर्गों को वास्तविक डेटा पर निर्भरता से मुक्त कर सकूं। मुझे पता है कि मैं इस (Mocking an Entity Framework Model) के बारे में पूछने वाला पहला व्यक्ति नहीं हूं, लेकिन कुछ googling के बाद मुझे एक वृत्ति है कि मॉडल के मेटाडेटा के आधार पर संदर्भ को तुरंत चालू करना संभव हो सकता है।मॉकिंग एंटिटी फ्रेमवर्क संदर्भ

क्या कोई ऐसा करने में सक्षम है?

+0

एक और परत बनाने के दौरान भी, आप कैसे सेव ऑपरेशन निष्पादित करेंगे - जैसे ईएफ mmamDbEntities का उपयोग करता है। सेव चेंज(); एंटीटी संदर्भ के बाद –

+0

प्रश्न [माक एंटीटी फ्रेमवर्क डेटाबेस] (http://stackoverflow.com/questions/6087857/mock-entity-framework-database/14406546#14406546) के लिए मेरा उत्तर देखें। एक टी 4 टेम्पलेट का उपयोग करके आपके इकाई मॉडल से एक नकली ऑब्जेक्ट संदर्भ बनाया जा सकता है। इस तरह नियमित पीओसीओ वर्ग बनाए जाते हैं, और इसे आपके ठोस ऑब्जेक्ट संदर्भ के साथ स्वीकार्य बनाने के लिए एक मॉक ऑब्जेक्ट संदर्भ और इंटरफ़ेस बनाने के लिए बहुत आसानी से बढ़ाया जा सकता है। – NightOwl888

उत्तर

6

आप इसे मेटाडाटा के साथ कर सकते हैं, इसके बारे में एक अच्छा लेख है, और सामान्य रूप से यूनिट परीक्षण ईएफ, here

7

ऐसा करने का एक प्रसिद्ध तरीका Repository pattern का उपयोग करना है। यह आपके ठोस डेटा पहुंच कार्यान्वयन पर एक परत के रूप में कार्य करता है और परीक्षण युगल इंजेक्ट करने के लिए एक जगह प्रदान करता है।

+1

रिपोजिटरी पैटर्न (जो निश्चित रूप से एक अच्छा विचार है) के साथ भी आप इसका लाभ लेने के लिए ऑब्जेक्ट कॉन्टेक्स्ट को चारों ओर रखना चाहते हैं। –

+1

ईएफ के लिए मैंने देखा भंडार पैटर्न आंतरिक रूप से ऑब्जेक्ट कॉन्टेक्स्ट का उपयोग करते हैं। –

+3

ऑब्जेक्ट कॉन्टेक्स्ट को आम तौर पर निर्भरता के रूप में भंडार में इंजेक्शन दिया जाना चाहिए - रिपोजिटरी और कार्य इकाई यूनिटोगोनल हैं। –

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