CollectionAssert.AreEquivalent с пользовательским IEqualityComparer - PullRequest
27 голосов
/ 25 июля 2010

У меня есть два списка, я хочу проверить, одинаковы ли эти два списка (порядок не важен), и зависит ли он от того, какой экземпляр IEqualityComparer я реализую.

В идеалечто я могу использовать CollectionAssert.AreEquivalent с Custom IEqualityComparer.Однако, похоже, что CollectionAssert.AreEquivalent не принимает никаких IEqualityComparer.

Есть идеи о том, как сделать это кратким и многократно используемым способом?

1 Ответ

34 голосов
/ 25 июля 2010

CollectionAssert.AreEquivalent реализовано как:

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

Вы можете записать свое утверждение таким образом и предоставить пользовательский IEqualityComparer с Using:

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

Вы также можете сократить new CollectionEquivalentConstraint до Is.EquivalentTo:

Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...