Подтвердить что ты не робот

CollectionAssert.AreEquivalent с пользовательским IEqualityComparer

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

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

Любая идея о том, как сделать это в краткой и многоразовой манере?

4b9b3361

Ответ 1

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));