給定兩個字典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