प्रश्न (रों)
- मैं कैसे EntityFramework 5 के साथ मेरा ASP.NET MVC4 वेब अनुप्रयोग परीक्षण करते हैं?
- क्या मुझे मोक जैसे मॉकिंग फ्रेमवर्क का उपयोग करना चाहिए?
परिचय
मैं सप्ताह के लिए इस विषय पर शोध किया गया है। मुझे बहुत सारी सामग्री मिली है लेकिन कुछ भी नहीं जो मुझे लगता है कि सवाल पूरी तरह से जवाब देता है। बहुत सारी जानकारी साल पुरानी है और लागू नहीं हो सकती है।मैं अपने वेब एप्लिकेशन के लिए परीक्षण कैसे लिखूं?
मेरी स्थिति
मैं एक MVC4 आवेदन है कि एक एक मौजूदा लेकिन बाहर दिनांकित आवेदन के पुनर्निर्माण के निर्माण कर रहा हूँ। डेटाबेस पहले से मौजूद है (और इसलिए डेटाबेस-पहला दृष्टिकोण), बड़ा है और जटिल है। आदर्श रूप में जो मैं चाहता हूं वह एक नकली "इकाई" ऑब्जेक्ट है जो मेरी मुख्य इकाई वस्तु के समान है लेकिन किसी प्रकार का "मॉक" या इन-मेमोरी डेटाबेस का उपयोग करता है ताकि मैं नकली डेटा का एक गुच्छा उत्पन्न कर सकूं, परीक्षण चला सकूं और प्रतिक्रिया प्राप्त करें। उदाहरण के लिए:
FakeEntities _db = new FakeEntities();
// test a controller action
अब तक ...
क्या मैं इतना समझ में से जहाँ तक मुझे integration testing का उपयोग करना चाहिए। this post by Ladislav Mrnka एकीकरण के अनुसार परीक्षण परीक्षण नियंत्रक कार्यों का अर्थ है और साथ LINQ करने वाली संस्थाओं और LINQ करने वाली वस्तुओं
अगर आप भंडार नकली आप LINQ करने के लिए-वस्तुओं का उपयोग होगा और एक हरे रंग की होगा कम समस्याओं का मतलब परीक्षण लेकिन यदि आप LINQ करने के लिए-संस्थाओं के साथ एप्लिकेशन को चलाने आप एक अपवाद मिल जाएगा
मुझे पता है कि वह क्या मतलब है और मैं मानता हूँ कर सकते हैं - मैं सुनिश्चित करने के लिए मैं हमेशा उपयोग कर रहा हूँ LINQ करने के लिए-संस्थाओं चाहते हैं और वास्तविक (या वास्तविक के करीब) डेटाबेस।
मैंने repository pattern और this blog by linush के बारे में बहुत कुछ पढ़ा है जो मैं कोशिश कर रहा हूं उससे काफी करीब दिखता है। असल में मैंने पहले से ही एक डमी प्रोजेक्ट बनाया है जिसमें मैंने generic repository बनाने का परीक्षण किया है और सफलतापूर्वक एंटीटी फ्रेमवर्क और "मॉक" डीबीकॉन्टेक्स्ट का उपयोग किया है जो इन-मेमोरी ऑब्जेक्टसेट पर निर्भर था।
इस दृष्टिकोण के साथ मेरी समस्या
- जैसा कि ऊपर है, इसका मतलब है मैं उपयोग कर रहा हूँ LINQ करने के लिए-वस्तुओं के बजाय LINQ करने के लिए-संस्थाओं
- मेरे वेब अनुप्रयोग संग्रहित का भारी इस्तेमाल पर निर्भर करेगा प्रक्रियाएं
सारांश उत्तर से पहले
- MVC4, EF5 और SQL सर्वर (हालांकि मैं somewh रहने के लिए करना चाहते हैं नास्तिक डेटाबेस) तर्क है कि SQL संग्रहित प्रक्रियाओं
- LINQ करने के लिए-संस्थाओं का उपयोग परीक्षण करने के लिए
- की क्षमता पर
- डाटाबेस-पहले दृष्टिकोण
सिर्फ 50 प्रतिनिधि !!!!!! प्रयास करें बढ़ती 0 के –
[Compuware AJAX संस्करण वेब प्रदर्शन का विश्लेषण और डिबगिंग उपकरण] (http://www.compuware.com/en_us/application-performance-management/products/ajax-free-edition/Capabilities.html) –