2010-05-06 8 views
9

मैं वास्तव में परीक्षण दृश्यों की स्वतंत्रता की क्षमता को देख रहा हूं। जिस तरह से RSpec does itएएसपी.नेट एमवीसी 2 (एला आरएसपीईसी) में टेस्ट व्यू

मैं क्या करना चाहता हूं प्रस्तुत किए गए दृश्य पर कोई दावा करने के लिए है (जहां कोई नियंत्रक शामिल नहीं है!)। ऐसा करने के लिए मुझे आवश्यक मॉडल, व्यूडाटा और शायद से कुछ विवरण प्रदान करना चाहिए HttpContextBase (हम HttpContext से कब छुटकारा पायेंगे!)।

अब तक मुझे ऐसा कुछ भी नहीं मिला है जो इसे करने की अनुमति देता है। इसके अलावा यह उपयोग किए जा रहे व्यूइंजिन पर भारी निर्भर हो सकता है।

चीजें हैं जो दृश्य हो सकता है की सूची इस प्रकार हैं:

  • आंशिक दृश्य (गहरा नेस्ट किया जा सकता है)।
  • मास्टर पेज (या अन्य दृश्य इंजनों में समान)।
  • एचटीएमएल हेल्पर्स लिंक और अन्य तत्व उत्पन्न करते हैं।
  • आम तौर पर सामान्य ज्ञान की एक श्रृंखला में लगभग कुछ भी :)।

कृपया ध्यान दें कि मैं क्लाइंट-साइड परीक्षण के बारे में बात नहीं कर रहा हूं और इस प्रकार सेलेनियम बस इससे संबंधित नहीं है। यह सिर्फ सादा .NET परीक्षण है।

तो क्या वास्तव में विचारों के परीक्षण करने के लिए कोई विकल्प हैं?

धन्यवाद,
दिमित्री।

उत्तर

2

पूर्ण विचारों का परीक्षण करने वाला मुख्य मुद्दा यह है कि एएसपीनेट व्यू इंजन आपूर्ति किए गए संदर्भ में Response.Write को कॉल करता है और आपूर्ति किए गए लेखक पर नहीं। http://www.brightmix.com/blog/renderpartial-to-string-in-asp-net-mvc/

अन्य दृश्य इंजन जिन्हें आप दृश्य अर्थात स्पार्क परीक्षण करने की अनुमति है के होते हैं:

ऊपर तो उन लोगों के लिए आप इस समाधान का उपयोग कर सकते हैं, आंशिक दृश्य के परीक्षण के लिए ऐसा नहीं है।

ps। एएसपीनेट एमवीसी में अवधारणा यह है कि आपको व्यूइंजिन का उपयोग करके दृश्य का परीक्षण करने में सक्षम होना चाहिए, लेकिन जैसा कि मैंने समझ लिया है कि एएसपीनेट एमवीसी टीम मौजूदा एएसपीनेट इंजन प्रतिबंधों के आसपास काम नहीं कर पाती है ताकि ऐसा करने में सक्षम हो सके उनके विचार इंजन के लिए।

+0

मैं निश्चित रूप से स्पार्क में देखूंगा। मैंने पहले एनएचएएमएल का इस्तेमाल किया था, लेकिन यह सुनिश्चित नहीं है कि परीक्षण इसके साथ किया जा सके। जवाब के लिए धन्यवाद। –

1

आप यूआई टेस्ट हेल्पर्स को देखना चाहते हैं कि एरिक हेक्सटर और एमवीसीसीन्ट्रिब के साथ लोग काम कर रहे हैं। मुझे गहराई से इसे देखने का मौका नहीं मिला है, लेकिन यह आपकी मदद कर सकता है। मुझे यह लिंक मिला जो कुछ वाक्यविन्यास दिखाता है: http://codepaste.net/cw8ie4

मुझे यह जानने में दिलचस्पी होगी कि आप क्या खोजते हैं क्योंकि मैं इसे जल्द ही कर रहा हूं।

+0

ब्रायन, 'MvcContrib.TestHelper.Ui' WATN या सेलेनियम जैसे ढांचे का उपयोग करके एकीकरण परीक्षण की अनुमति देता है। मुझे इसकी आवश्यकता नहीं है। मुझे वास्तव में केवल दृश्य प्रस्तुत करने की आवश्यकता है (मुझे आवश्यक मॉडल पास करना) और इसकी सामग्री पर जोर देना (अधिमानतः सीएसएस/XPath चयनकर्ताओं का उपयोग करना)। –

+0

मैं देखता हूं।लेकिन, यह मुझे एक और सवाल की ओर ले जाता है। उस बिंदु पर आप क्या परीक्षण करेंगे? ऐसा लगता है कि आप परीक्षण करेंगे कि रेंडर इंजन काम करता है। यह मुद्दा कहां है कि आपको ढांचे पर भरोसा करना है? –

+2

मैं जेनरेट किए गए एचटीएमएल का परीक्षण करूँगा, सही फॉर्म, इनपुट और अन्य तत्वों को प्रस्तुत और मान्य कर रहा हूं। इस तरह से मैं यह सुनिश्चित कर सकता हूं कि, उदाहरण के लिए, एक डिजाइनर ने एक नया डिज़ाइन लागू करने के बाद पेज तोड़ नहीं पाएंगे। –

0

यह जानकर दिलचस्पी है कि क्या आपको कुछ भी पता है या नहीं। नेट यह करता है। हमारा वर्तमान ऐप डब्ल्यूपीएफ है, लेकिन हम अपनी सभी सुविधाओं में हमारे विचारों को छूने के लिए ककड़ी पर भरोसा कर रहे हैं ... तो हाँ, वह बेकार है। आशा है कि आपको कुछ मिल जाएगा और हमें अपडेट करें।

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