2015-05-21 6 views
5

का उपयोग कर वीएस 2013 में एक्सएमएल डॉक्यूमेंट को कैसे रोकें मेरे पास नीचे TestMethod है, मैं वीएस 2013 के साथ परीक्षण कर रहा हूं और मैं माइक्रोसॉफ्ट फॉक्स का उपयोग कर रहा हूं।माइक्रोसॉफ्ट फॉक्स

[TestMethod]   
public void ConstructorTestForCMAClass() 
{ 
    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml("<add name=\"console\" type=\"System.Diagnostics.DefaultTraceCMA\" value=\"Error\"/>"); 
    XmlAttributeCollection attrColl = doc.DocumentElement.Attributes; 
     CMATracer cMATracer = new CMATracer(attrColl);    
} 

ऊपर TestMethod मैं स्टब उपयोग करने के लिए है, तो के लिए, यह कैसे modfied किया जाना चाहिए और कि XMLDocument के बजाय ठूंठ उपयोग करने के लिए एक अच्छा अभ्यास हो जाएगा?

मैंने यह कोशिश की है लेकिन यह सुनिश्चित नहीं है कि यह पर्याप्त है या नहीं।

StubXmlDocument stubXmlDocument = new StubXmlDocument(); 
stubXmlDocument.LoadXml("<add name=\"console\" type=\"System.Diagnostics.DefaultTraceCMA\" value=\"Error\"/>"); 
//create a stub attribute collection 
XmlAttributeCollection attrCollection = stubXmlDocument.DocumentElement.Attributes; 
CMATracer cMATracer = new CMATracer(attrColl); 
+0

ऐसा लगता है कि परीक्षण के तहत आपकी कक्षा (सीएमएट्रैसर) XmlAttributeCollection का उपयोग करती है ताकि आपको गलत चीज़ का मज़ाक उड़ाया जा सके। कृपया सीएमएट्रैसर के सीटर कार्यान्वयन को जोड़ें। –

उत्तर

0

मैं कल्पना यह XmlDocument ठूंठ माइक्रोसॉफ्ट नकली का उपयोग करना संभव है, लेकिन छोटा करते एक बहुत भंगुर परीक्षण टूट जाता है कि जब भी आप विधि अंतर्निहित कार्यान्वयन में प्रयोग किया जाता कॉल को बदलने में जिसके परिणामस्वरूप खत्म हो जाएगा।

मेरा सुझाव आपके xml के लिए पहले और बाद के राज्यों की जांच करना होगा। इस तरह से कोई फर्क नहीं पड़ता कि आपके सीएमएट्रैसर कोड में क्या बदलाव है, आपके परीक्षण अभी भी पास हो जाएंगे।

[TestMethod] 
    public void ConstructorTestForCMAClass() 
    { 
     // Arrange 
     string xmlDocPreState = "<add name=\"console\" type=\"System.Diagnostics.DefaultTraceCMA\" value=\"Error\"/>"; 
     string xmlDocPostState = "Whatever..."; 

     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml(xmlDocPreState); 
     XmlAttributeCollection attrColl = doc.DocumentElement.Attributes; 

     // Act 
     CMATracer cMATracer = new CMATracer(attrColl); 

     // Assert 
     Assert.AreEqual(xmlDocPostState, doc.OuterXml); 
    } 
संबंधित मुद्दे