С учетом двух словарей
var dictA = new Dictionary<string, classA>();
var dictB = new Dictionary<string, classA>();
Как проверить, совпадают ли эти два словаря? Подвох в том, что я не могу использовать значение по умолчанию classA.Equals
для сравнения пар значений. Вместо этого тест будет проходить тогда и только тогда, когда все объекты типа classA
в словарях должны удовлетворять моему собственному обычаю IEqualityComparer<ClassA>
.
В частности, я смотрю на что-то вроде
CollectionAssert.AreEquivalent(dictA, dictB, new ClassEqualityComparer());
с ClassEqualityComparer
наследуется от IEqualityComparer<ClassA>
или эквивалентным. Я не возражаю, если мне нужно создать подкласс типа NUnit IEqualityComparer
(например, IResolveConstraint
), но самое главное, что метод Assert
должен быть похож на
Assertion(dictA, dictB, EqualityComparer)
Или что-то еще более простое; Я не хочу использовать Assert.That
, а затем реализовать тип IResolveConstraint
, который встречается на страницах, просто чтобы проверить, совпадают ли два словаря.
Есть идеи?