2013-02-14 6 views
5

के लिए परीक्षण दृष्टिकोण मैं विजुअल स्टूडियो 2010 में एक एमवीसी 4 वेब एपीआई एप्लिकेशन के भीतर एक्सडॉक्यूमेंट के साथ काम कर रहा हूं और परीक्षण रणनीति के बारे में अनिश्चित हूं।XDocument.Load() और XDocument.Save()

मेरे अधिकांश यूनिट परीक्षण मेमोरी एक्सडोक्यूमेंट में उपयोग करते हैं, जो नियंत्रक, सेवा, भंडार परीक्षणों के लिए अच्छी तरह से काम करता है।

हालांकि, मेरे पास XDocument.Load(filename) और XDocument.Save (फ़ाइल नाम) परिदृश्य हैं, जिन्हें मैं परीक्षण करना चाहता हूं (या तो इकाई या एकीकरण परीक्षण के साथ)।

मैं SO here पर निम्नलिखित प्रश्न \ उत्तर देख रहा हूं लेकिन मुझे यकीन नहीं है कि आगे कैसे बढ़ना है।

public class PathProvider 
{ 
    public virtual string GetPath() 
    { 
     return HttpContext.Current.Server.MapPath("App_Data/policies.xml") 
    } 
} 

PathProvider pathProvider = new PathProvider(); 
XDocument xdoc = XDocument.Load(pathProvider.GetPath()); 

तो, मुझे लगता है कि मैं अब नकली कॉल कर सकते हैं जो कुछ भी करने के लिए कॉल XDocument.Load मिल (pathProvider.GetPath())।

क्या मुझे उस पथप्रोवाइडर कार्यों का परीक्षण करने की कोशिश करनी चाहिए? यदि, तो, मैं इस से कैसे संपर्क करूंगा?

धन्यवाद

डेवी

+0

आप कॉल को ' [एमएस फॉक्स] का उपयोग कर XDocument.Load' (http://msdn.microsoft.com/en-us/library/hh549175.aspx)। –

+0

धन्यवाद, मुझे कहना चाहिए था कि मैं वीएस 2010 का उपयोग कर रहा हूं और अपग्रेड नहीं कर सकता। मेरा मानना ​​है कि 2010 में नकली काम नहीं करते हैं। – davy

+0

आप पूर्ववर्ती [मोल्स] (http://research.microsoft.com/en-us/projects/moles/) –

उत्तर

2

मैं तो उस PathProvider काम करता है परीक्षण करने के लिए कोशिश कर किया जाना चाहिए? यदि, तो, मैं इस से कैसे संपर्क करूंगा?

मेरा उत्तर कम से कम स्वचालित परीक्षण के साथ शुरू नहीं हुआ है।

बस आपके द्वारा प्रदान किए गए कोड स्निपेट के कारण, पथप्रोवाइडर ASP.NET ढांचे के चारों ओर एक रैपर (एडाप्टर) है। केवल एक ही परीक्षण जो मैं भरोसा करता हूं वह सहयोग परीक्षण होगा, उदाहरण के लिए मैं सत्यापित करता हूं कि जब आप उम्मीद करते हैं तो GetPath() को लागू किया जाता है। कहा जा रहा है, संदर्भ यहाँ महत्वपूर्ण है।

PathProvider pathProvider = new PathProvider(); 
XDocument xdoc = XDocument.Load(pathProvider.GetPath()); 

उपर्युक्त कोड "ढांचे का परीक्षण" करने की कोशिश करता है, इसलिए मैं इस तरह के कोड को यूनिट परीक्षण से परेशान नहीं करता। यदि आप वास्तव में यह सुनिश्चित करना चाहते थे कि कोड के इस हिस्से ने एक्सएमएल फाइलों के साथ सही काम किया है और आगे, मैं एकीकरण परीक्षण में फॉलबैक करूंगा। हालांकि यह मानें कि यह धीमा और भंगुर हो सकता है।

इसलिए मेरा समाधान पथप्रोवाइडर के साथ आपके द्वारा लोड किए गए XML दस्तावेज़ की अवधारणा को सारणित करना होगा। यहां से, मैन्युअल परीक्षण पर्याप्त होगा। अगर इस तरह के एडेप्टर में कोई डोमेन तर्क शामिल है, तो मैं कक्षाओं/विधियों को निकाल दूंगा जो आप एक्सएमएल या दस्तावेज़ लोडिंग आदि के बारे में चिंता करने की आवश्यकता के बिना अलगाव में परीक्षण कर सकते हैं ...

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