का उपयोग करते हैं लोग यूनिट परीक्षण कोड कैसे हैं जो लिंक से SQL का उपयोग करता है?लोग यूनिट परीक्षण कोड कैसे हैं जो लिंक से SQL
उत्तर
अद्यतन:
फ्रेड्रिक कैसे अपने ब्लॉग पर इकाई परीक्षण linq2sql अनुप्रयोगों से अधिक करने के लिए एक उदाहरण समाधान कर दिया गया है।
इतना ही नहीं करते हैं मुझे लगता है कि अपने महान है कि वह एक उदाहरण समाधान तैनात है, वह भी सभी वर्गों, जो डिजाइन और अधिक decoupled बनाता है के लिए इंटरफेस निकालने में कामयाब रहे: आप इसे पर डाउनलोड कर सकते हैं।
मेरे पुराने पोस्ट:
* मैं इन ब्लॉगों मुझे लगता है कि DataContext आवरण बनाने के लिए एक अच्छी शुरुआत कर रहे हैं पाया: Link1 Link2
वे लगभग एक ही विषय है कि पहले एक औजार को छोड़कर कवर टेबल के लिए इंटरफेस निकालने का मतलब है। दूसरा एक और अधिक व्यापक है, इसलिए मैंने इसे भी शामिल किया। *
पहले लिंक पर वास्तविक पता गलत है, वास्तव में उपयोगी आलेख देखने के लिए पते को कॉपी और पेस्ट करें। –
लिंक मृत होने लगते हैं – Ha11owed
मैं उदाहरण कोड (ज़िप डाउनलोड भी काम करता है) और वे बैक मशीन पर लिंक 1 ढूंढने में सक्षम था, इसलिए वे लिंक अभी तय किए गए हैं। मैं लिंक 2 की कामकाजी प्रति नहीं ढूंढ पा रहा था। –
आम तौर पर, आपको LINQ से SQL का उपयोग करने वाले कोड के हिस्से की जांच करने की आवश्यकता नहीं है, लेकिन यदि आप वास्तव में चाहते हैं, तो आप उसी डेटा सेट का उपयोग कर सकते हैं जिसे आप सर्वर के विरुद्ध पूछताछ कर रहे हैं और उन्हें चालू कर सकते हैं -मेमरी ऑब्जेक्ट्स और उसके खिलाफ LINQ क्वेरी चलाएं (जो क्वेरी करने योग्य के बजाय संख्यात्मक विधियों का उपयोग करेगा)।
मैट वॉरेन के mockable version of the DataContext का उपयोग करने का एक और विकल्प है।
आप SQL कथन भी प्राप्त कर सकते हैं कि LINQ से SQL उन्हें डीबगर (IQueryable ऑब्जेक्ट से) के माध्यम से प्राप्त करके उपयोग करता है, मैन्युअल रूप से उनको जांचें, और फिर उन्हें स्वचालित परीक्षणों में शामिल करें।
किसी को LINQ से SQL का उपयोग करने वाले कोड के भाग का परीक्षण करने की आवश्यकता क्यों नहीं है? मैं उदास हूँ एक एएसपीएनटी एमवीसी वेब पेज लिखना जहां कई नियंत्रक LINQ से SQL का उपयोग करते हैं और मुझे इन नियंत्रकों का परीक्षण करना पड़ता है ... –
मेरा मतलब था कि आपको यह सुनिश्चित करने की आवश्यकता नहीं है कि LINQ से SQL स्वयं विज्ञापन के रूप में काम करता है (क्योंकि माइक्रोसॉफ्ट पहले से ही परीक्षण किया गया है वह आपके लिए) आपके कोड के विपरीत जो LINQ से SQL कक्षाओं के किसी भी परिणाम का उपयोग करता है। –
लिंकक परीक्षण को अधिक आसान बनाता है। लिंक पूछताछ लिंक-टू-एसक्यूएल सामान के रूप में सूचियों पर भी काम करती है। आप सूची वस्तुओं के लिए लिंक से एसक्यूएल को स्वैप कर सकते हैं और उस तरह से परीक्षण कर सकते हैं।
समस्या विदेशी कुंजी संबंधों (EntitySet/EntityRef) और कॉलम जैसी चीजें हैं जहां 'IsDbGenerated = true' है। –
आपको वास्तव में इस दृष्टिकोण से सावधान रहना होगा। लिंक से SQL और लिंक से ऑब्जेक्ट्स अलग-अलग प्रदाता हैं और कोई गारंटी नहीं है कि वे बिल्कुल वही काम करेंगे (और व्यवहार में, वे कभी-कभी नहीं करेंगे)। विशेष रूप से इस मामले में, जहां लिंक से एसक्यूएल लिंक के ऑब्जेक्ट्स का उप-समूह है। मैं रनटाइम असफलताओं के बाद कई हरे रंग के यूनिट परीक्षणों की भविष्यवाणी करता हूं। –
डेटाकॉन्टेक्स्ट लपेटें, फिर रैपर को नकली करें। इसे पूरा करने का सबसे तेज़ तरीका है, इसलिए इसे परीक्षण के लिए कोडिंग की आवश्यकता होती है, जो कुछ लोग गंध महसूस करते हैं। लेकिन कभी-कभी, जब आपके पास निर्भरताएं होती हैं जिन्हें आसानी से मजाक नहीं किया जा सकता है, तो यह एकमात्र तरीका है।
The Wayward Web Log पर मत्वार पर एक विस्तृत लेख था कि कैसे एक एक्स्टेंसिबल Linq2Sql डेटा संदर्भ को नकल करना है। इसे देखें - MOCKS NIX - AN EXTENSIBLE LINQ TO SQL DATACONTEXT
LINQ से SQL वास्तव में इकाई परीक्षण के लिए वास्तव में अच्छा है क्योंकि इसमें आपके डीबीएमएल में परिभाषित किए गए अनुसार उड़ान पर डेटाबेस बनाने की क्षमता है।
यह डाटाकॉन्टेक्स्ट के माध्यम से डीबी बनाकर और इसे शुरू करने के लिए खाली करके ओआरएम परत का परीक्षण करना वाकई अच्छा बनाता है।
मैं यहाँ अपने ब्लॉग पर इसे कवर: http://web.archive.org/web/20090526231317/http://www.aaron-powell.com/blog/may-2008/unit-testing-linq-to-sql.aspx
इस लिंक में वर्तमान में –
त्रुटियां हैं, मैंने लेखक की वर्तमान वेबसाइट पर एक नज़र डाली और उल्लिखित पद नहीं मिला। मैंने पिछले लिंक को तोड़ने के बाद से वे बैक मशीन से सबसे अच्छे मैच के साथ जवाब संपादित किया है। –
हाँ, ऐसा लगता है कि वह समय समय के रेत (और एकाधिक माइग्रेशन) में खो गया है। लेकिन वास्तव में मैंने जिस समाधान का प्रस्ताव दिया है ** ** यूनिट परीक्षण नहीं है, यह एकीकरण परीक्षण है –
3 साल देर से, लेकिन यह कैसे मैं यह कर रहा है:
https://github.com/lukesampson/LinqToSQL-test-extensions/
एक आवरण लिखने या पाइपलाइन की बहुत सारी करने के लिए कोई ज़रूरत नहीं, बस अपने बगल में टी 4 टेम्पलेट ड्रॉप करें।डीबीएमएल और आपको मिलता है:
- आपके डेटा संदर्भ के लिए एक इंटरफ़ेस उदा। IExampleDataContext
- आपके डेटा संदर्भ के लिए एक इन-मेमोरी मैक उदा। MemoryExampleDataContext
दोनों स्वचालित रूप से उन मैपिंग का उपयोग करेंगे जिन्हें आपने पहले ही अपने डीबीएमएल में कॉन्फ़िगर किया है।
तो तुम जैसे
public class ProductRepo {
IExampleDataContext DB { get; set };
public ProductRepo(IExampleDataContext db) {
DB = db;
}
public List<Product> GetProducts() {
return DB.Products.ToList();
}
}
कर सकते हैं और आप कॉल कर सकते हैं कि के साथ या तो
new ProductRepo(new MemoryExampleDataContext()).GetProducts(); // for testing
या
new ProductRepo(new ExampleDataContext()).GetProducts(); // use the real DB
- 1. यूनिट परीक्षण कोड जो वर्तमान समय
- 2. यूनिट परीक्षण जो प्रतिबिंब
- 3. यूनिट परीक्षण गणितीय कोड
- 4. यूनिट परीक्षण कोड अनुबंध
- 5. यूनिट परीक्षण कोड जो स्थिर विधियों को कॉल करता है
- 6. आप कैसे (यूनिट) डेटाबेस स्कीमा का परीक्षण करते हैं?
- 7. .NET यूनिट परीक्षण - रिलीज कोड
- 8. लिंक से SQL
- 9. आप यूनिट परीक्षण व्यवसाय अनुप्रयोग कैसे करते हैं?
- 10. लिंक से SQL
- 11. यूनिट परीक्षण फ़ंक्शन जो फ़ाइलों को एक्सेस करते हैं
- 12. यूनिट परीक्षण विधि जो यूआई नियंत्रण
- 13. लिंक से SQL
- 14. आप यूनिट परीक्षण कैसे करते हैं?
- 15. लोग रेलवे का परीक्षण कैसे कर रहे हैं 3.1 + force_ssl?
- 16. लिंक से SQL
- 17. यूनिट परीक्षण
- 18. यूनिट परीक्षण और स्वीकृति परीक्षण पर्याप्त हैं?
- 19. यूनिट परीक्षण सी कोड में आप क्या उपयोग करते हैं?
- 20. यूनिट परीक्षण? कैसे? क्या?
- 21. लिंक से SQL
- 22. यूनिट परीक्षण नियंत्रक क्रियाएं जो IsAjaxRequest()
- 23. आप कैसे कहते हैं कि आपके यूनिट परीक्षण सही हैं?
- 24. एमवीसी 3 यूनिट परीक्षण प्रतिक्रिया कोड
- 25. यूनिट परीक्षण सी ++ कोड एक अनाम नामस्थान
- 26. यूनिट परीक्षण
- 27. यूनिट परीक्षण?
- 28. लिंक से SQL
- 29. लिंक से SQL
- 30. यूनिट परीक्षण - एक SqlDataReader
मैं सिर्फ Linq2Sql साथ ASP.NET MVC बाहर कोशिश कर रहा हूँ और "टास्कलिस्ट" डेमो एप्लिकेशन के लिए कुछ यूनिट परीक्षण लिखने की कोशिश की। बहुत अजीब त्रुटियों में भागो, और फिर मैं इस पर ठोकर खाई। एक महान तकनीक ढेर को इतना आसान लगाना बहुत दुखद है। – willasaywhat
यह देखने के लिए देखें कि LINQ से SQL के साथ प्रभावी ढंग से और सफलतापूर्वक परीक्षण कैसे करें: http://stackoverflow.com/questions/4128640/how-to-remove-unit-of-work- कार्यक्षमता-from-repositories-using- ioc/4132186 # 4132186 – Steven
पर्याप्त क्वेरी-पार्ट्स हैं जो linq के साथ linq के साथ ठीक काम करते हैं जो linq से sql के साथ नहीं है। यह बहुत अच्छा होगा अगर हमारे पास वास्तव में SQL सर्वर के विरुद्ध चलने के बिना linq2sql संगतता का परीक्षण करने के लिए एक तंत्र था। (SQL सर्वर के लिए, अन्य डीबीएमएस के लिए कार्यान्वयन अन्य अभिव्यक्ति परिवर्तन का समर्थन कर सकता है)। जब आप क्वेरी स्पेस (फ़िल्टर, ट्रांसफॉर्मेशन, एग्रीगेशंस) को इकट्ठा करने के लिए अपने विशिष्टता पैटर्न या डीएसएल का परीक्षण करना चाहते हैं तो वास्तविक डीबी इंस्टेंस के खिलाफ परीक्षण चलाने का कोई विकल्प नहीं लगता है। या वहाँ है? – mbx