给定两个字典NUnit的:检查是否两个字典是相同的
var dictA = new Dictionary<string, classA>();
var dictB = new Dictionary<string, classA>();
如何检查这两个字典是否是相同的API? 这里的渔获是我不能使用默认的classA.Equals
来比较值对。相反,只有在字典中classA
类型的所有对象都必须满足我自己的自定义IEqualityComparer<ClassA>
时,测试才会通过。
具体来说,我从IEqualityComparer<ClassA>
,或同等看着像
CollectionAssert.AreEquivalent(dictA, dictB, new ClassEqualityComparer());
与ClassEqualityComparer
继承。我不介意,如果我要继承一个NUnit的类型IEqualityComparer
(如IResolveConstraint
),但最重要的一点是,Assert
方法必须是这样的
Assertion(dictA, dictB, EqualityComparer)
或者一些更简单;我不想使用Assert.That
,然后实现一种类型为IResolveConstraint
的页面,以检查两个字典是否相同。
有什么想法?
'比较器'只比较字典的键值,它不会比较值。 – Graviton 2010-02-01 07:58:41
如果你想比较值,一个列表比哈希表更合适的数据类型。 – 2010-02-01 08:23:08
我不能因为列表比较意味着我必须得到正确的项目顺序。在我的比较中,订单并不重要。 – Graviton 2010-02-01 08:46:06