2010-07-25 11 views
24

İki listeye sahibim, iki listenin aynı olup olmadığını (sipariş önemli değil) ve aynı olup olmadığını kontrol etmek istiyorum Uyguladığım IEqualityComparer örneğine bağlıdır.CollectionAssert.OreEquivalent ile Özel IEqualityComparer

İdeal durum, CollectionAssert.AreEquivalent'u Özel IEqualityComparer ile kullanabilmemdir. Ancak, CollectionAssert.AreEquivalent'un IEqualityComparer numaralı telefona girmediği anlaşılıyor.

Bunu nasıl kısa ve tekrar kullanılabilir bir şekilde yapabileceğiniz hakkında bir fikriniz var mı? Sen Using ile özel bir IEqualityComparer senin assert o şekilde yazmak ve sağlayabilmektedir

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

:

cevap

28

CollectionAssert.AreEquivalent olarak uygulanmaktadır

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

Ayrıca kısaltabilir new CollectionEquivalentConstraintIs.EquivalentTo için:

Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));