2013-08-15 4 views
6

निम्नलिखित वर्ग को देखते हुए, आप इसके लिए यूनिट परीक्षण लिखने के बारे में कैसे जाएंगे? मैंने पढ़ा है कि फ़ाइल IO फ़ाइल करने वाला कोई भी परीक्षण यूनिट परीक्षण नहीं है, तो क्या यह एक एकीकरण परीक्षण है जिसे लिखा जाना चाहिए? मैं परीक्षण के लिए xUnit और MOQ का उपयोग कर रहा हूं और मैं इसके लिए बहुत नया हूं, तो शायद मैं MOQ फ़ाइल कर सकता हूं? निश्चित नहीं।फ़ाइल IO फ़ाइल करने वाले कोड का परीक्षण कैसे करते हैं?

public class Serializer 
{ 
    public static T LoadFromXmlFile<T>(string path) 
     where T : class 
    { 
     var serializer = new XmlSerializer(typeof(T)); 

     using (var reader = new StreamReader(path)) 
     { 
      return serializer.Deserialize(reader) as T; 
     } 
    } 

    public static void SaveToXmlFile<T>(T instance, string path) 
    { 
     var serializer = new XmlSerializer(typeof(T)); 

     using (var writer = new StreamWriter(path)) 
     { 
      serializer.Serialize(writer, instance); 

      writer.Flush(); 
     } 
    } 
} 
+0

आप अपने यूनिट परीक्षण के साथ क्या कवर करने की कोशिश कर रहे हैं? पासिंग/असफल परीक्षण का एक उदाहरण क्या है? –

उत्तर

6

इसी तरह की परिस्थितियों में मैं विधि हस्ताक्षर संशोधित कर लिया है एक TextWriter या स्ट्रीम (स्थिति के आधार पर) और यूनिट StringWriters या MemoryStreams में गुजर और एक अपेक्षित परिणाम के परिणामस्वरूप स्ट्रिंग या बाइट सरणी की तुलना द्वारा स्वीकार करने के लिए परीक्षण किया । वहां से यह एक काफी सुरक्षित धारणा है कि फ़ाइलवाइटर या फ़ाइलस्ट्रीम एक फ़ाइल में एक ही आउटपुट का उत्पादन करेगा, यह मानते हुए कि पथ वैध है और आपके पास आवश्यक अनुमतियां हैं।

1

शायद यह एक परीक्षण का एक उदाहरण है जिसे आपको लिखने की आवश्यकता नहीं है।

लेकिन यदि आप वास्तविक फ़ाइल स्तर की सामग्री का परीक्षण करना चाहते हैं। आप किसी ज्ञात फ़ाइल को किसी विशिष्ट स्थान पर लिख सकते हैं और उसके बाद बाइनरी में पढ़ने वाली फ़ाइल का परीक्षण पूर्व-डिब्बाबंद बाइनरी स्ट्रीम के समान होता है।

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