2010-07-13 14 views
8

क्या संग्रहAssert.AreEquivalent() के समान कुछ है जो नेस्टेड संग्रह के साथ काम करता है?NUnit Nested संग्रह तुलना

निम्नलिखित कोड ...

CollectionAssert.AreEquivalent ( 
    new Dictionary<int, Dictionary<int, string>> 
    { 
     { 1, new Dictionary < int, string > { { 10, "foo" }, { 11, "bar" }, { 12, "spam" } } }, 
     { 2, new Dictionary < int, string > { { 20, "eggs" }, { 21, "eels" } } }, 
     { 3, new Dictionary < int, string > { { 30, "hovercraft" } } } 
    }, 
    new Dictionary<int, Dictionary<int, string>> 
    { 
     { 1, new Dictionary < int, string > { { 10, "foo" }, { 11, "bar" }, { 12, "spam" } } }, 
     { 2, new Dictionary < int, string > { { 20, "eggs" }, { 21, "eels" } } }, 
     { 3, new Dictionary < int, string > { { 30, "hovercraft" } } } 
    }); 

इस अपवाद फेंकता है ...

Expected: equivalent to 
    < [1, System.Collections.Generic.Dictionary`2[System.Int32,System.String]], 
    [2, System.Collections.Generic.Dictionary`2[System.Int32,System.String]], 
    [3, System.Collections.Generic.Dictionary`2[System.Int32,System.String]] > 
But was: 
    < [1, System.Collections.Generic.Dictionary`2[System.Int32,System.String]], 
    [2, System.Collections.Generic.Dictionary`2[System.Int32,System.String]], 
    [3, System.Collections.Generic.Dictionary`2[System.Int32,System.String]] > 

निम्नलिखित ज़ोर से गुजरता है:

CollectionAssert.AreEquivalent (
    new Dictionary < int, string > { { 10, "foo" }, { 11, "bar" }, { 12, "spam" } }, 
    new Dictionary < int, string > { { 10, "foo" }, { 11, "bar" }, { 12, "spam" } }); 

अगर मैं उम्मीद संग्रह में परिवर्तन कर , संदेश में संदेश दोनों संग्रहों की पूरी सामग्री के साथ एक अपवाद फेंकता है:

Expected: equivalent to < [10, foo], [11, bar], [12, spam] > 
But was: < [10, foo], [11, bar], [12, eggs] > 

मैं NUnit 2.4.7.0 का उपयोग कर रहा हूं।

+0

इसी तरह के प्रश्न: http://stackoverflow.com/questions/4185164/recursive-assert-on-collection –

उत्तर

0

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

+0

मौजूदा विधि अपेक्षित और वास्तविक परिणामों और समस्या कहां से स्पष्ट है। मैं अपने प्रश्न को अपडेट कर दूंगा जो मैं आउटपुट के रूप में देखना चाहता हूं। – MikeWyatt

0

एक पुरानी सवाल है, लेकिन किसी को सिर्फ nunit-पर चर्चा पर यह करने के लिए एक लिंक पोस्ट ...

विफलता है, क्योंकि NUnit के संस्करण का उपयोग किया दो शब्दकोशों के बीच समानता की तुलना का समर्थन नहीं किया और वस्तु तुलना पर वापस गिर गया । हालिया रिलीज में यह समस्या नहीं होगी।