簡體   English   中英

NUnit:字典斷言

[英]NUnit: Dictionary Assert

我想在NUnit中使用一個內聯器來斷言兩個字典是否相同。 即,我想要以下代碼的簡潔版本:

public static void DictionaryAssert<T, U>(Dictionary<T, U> dictionaryResult, Dictionary<T, U> expectedResult)
{
    Assert.AreEqual(dictionaryResult.Count, expectedResult.Count);
    foreach (var aKey in expectedResult.Keys)
    {
        Assert.AreEqual(expectedResult[aKey], dictionaryResult[aKey]);
    }
}

當然不是那么困難,但我找不到參考,任何想法?

看看CollectionAssert.AreEquivalent 這將聲明兩個詞典具有相同的內容,但不一定是相同的實例。

您可以使用名為Should的庫編寫框架無關的斷言。 它還有一個非常好的流利語法,如果你喜歡流暢的界面,可以使用它。 我有一篇與之相關的博客文章。

http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html

嘗試使用CollectionAssert.AreEqual CollecitonAssert.AreEquivalent

兩者都將比較集合的項目(而不是集合的參考),但如前所述 ,區別在於集合中項目的順序:

  • AreEqual - 集合必須具有相同的計數,並且包含相同順序的完全相同的項目。
  • AreEquivalent - 集合必須包含相同的項目,但匹配可以按任何順序排列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM