2010-07-25 12 views
24

मेरे पास दो सूचियां हैं, मैं यह जांचना चाहता हूं कि दो सूचियां समान हैं (आदेश महत्वपूर्ण नहीं है), और चाहे यह वही है IEqualityComparer उदाहरण मैं लागू करता हूं।संग्रह Issert.AreEquivalent कस्टम IEqualityComparer

आदर्श मामला यह है कि मैं कस्टम IEqualityComparer के साथ CollectionAssert.AreEquivalent का उपयोग कर सकता हूं। हालांकि ऐसा लगता है कि CollectionAssert.AreEquivalent किसी भी IEqualityComparer में नहीं लेता है।

किसी संक्षिप्त और पुन: प्रयोज्य तरीके से इसे कैसे करें इस पर कोई विचार?

उत्तर

28

CollectionAssert.AreEquivalent के रूप में कार्यान्वित किया जाता है:

Assert.That(actual, new CollectionEquivalentConstraint(expected), message, args); 

आप बाहर अपने ज़ोर Using साथ इस तरह से लिख सकते हैं और एक कस्टम IEqualityComparer आपूर्ति कर सकते हैं:

Assert.That(actual, 
    new CollectionEquivalentConstraint(expected).Using(customComparer)); 

तुम भी छोटा कर सकते हैं new CollectionEquivalentConstraintIs.EquivalentTo रहे हैं:

Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer)); 
संबंधित मुद्दे