2010-07-25 14 views
24

Tengo dos listas, quiero comprobar si las dos listas son las mismas (orden no importante), y si es la misma depende de la instancia IEqualityComparer que implemente.CollectionAssert.AreEquivalent con IEqualityComparer personalizado

El caso ideal es que puedo usar CollectionAssert.AreEquivalent con Custom IEqualityComparer. Sin embargo, parece que CollectionAssert.AreEquivalent no admite IEqualityComparer.

¿Alguna idea de cómo hacerlo de manera breve y reutilizable?

Respuesta

28

CollectionAssert.AreEquivalent se implementa como:

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

Puede escribir su aserción de esa manera y suministrar una costumbre IEqualityComparer con Using:

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

También puede acortar new CollectionEquivalentConstraint-Is.EquivalentTo:

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