मैं इकाई परीक्षण ADO नेट इकाई की रूपरेखा के खिलाफ लिखे कोड हूं। मैं पंक्तियों के साथ एक इन-मेमोरी डेटाबेस पॉप्युलेट करना चाहता हूं, और यह सुनिश्चित कर लें कि मेरा कोड उन्हें ठीक से पुनर्प्राप्त कर सके।क्या इकाई फ्रेमवर्क के लिए एक मेमोरी प्रदाता है?
मैं राइनो मोक्स का उपयोग करके इकाई फ्रेमवर्क का नकल कर सकता हूं, लेकिन यह पर्याप्त नहीं होगा। मैं पूछताछ करूँगा कि कौन सी संस्थाएं मेरे पास लौट आती हैं। यह न तो उस खंड का परीक्षण करेगा और न ही। शामिल() कथन। मैं यह सुनिश्चित करना चाहता हूं कि मेरा जहां खंड केवल पंक्तियों से मेल खाता है, और कोई अन्य नहीं। मैं यह सुनिश्चित करना चाहता हूं कि मैंने उन संस्थाओं से पूछा है जिन्हें मुझे चाहिए, और कोई भी जो मैं नहीं करता हूं।
उदाहरण के लिए:
class CustomerService
{
ObjectQuery<Customer> _customerSource;
public CustomerService(ObjectQuery<Customer> customerSource)
{
_customerSource = customerSource;
}
public Customer GetCustomerById(int customerId)
{
var customers = from c in _customerSource.Include("Order")
where c.CustomerID == customerId
select c;
return customers.FirstOrDefault();
}
}
अगर मैं नकली ObjectQuery आदेश के साथ आबादी वाले एक ज्ञात ग्राहक वापस जाने के लिए, मुझे कैसे पता customerservice सही जहां खंड और शामिल है कि करते हैं? मैं कुछ ग्राहक पंक्तियों और कुछ ऑर्डर पंक्तियों को डालने के बजाय, सही ग्राहक का चयन किया गया था और आदेश आबादी वाले हैं।
जैसे आप समाप्त कर चुके हैं, मैंने रिपोजिटरी पैटर्न और यूनिट ऑफ वर्क पैटर्न का पालन करने के लिए इंटरफेस का उपयोग किया है। फिर, मेरे पास दो नामस्थान हैं -> ईएफ और नकली। मेरे नकली भंडार के साथ, मैंने अपनी सामग्री को स्टोर करने के लिए आईएलआईस्ट का उपयोग किया और डेटा निकालने के लिए ऑब्जेक्ट्स के लिए लिंक को लीवरेज किया। महान काम करता है :) –
EntityFramework 7 में अब इनमोमोरी प्रदाता है। अभी भी टिप्पणी के रूप में बीटा लेकिन यदि आप रात की नींद की सदस्यता लेते हैं तो आप इसे प्राप्त कर सकते हैं। – ppumkin