NUnit:字典断言

Gra*_*ton 22 c# nunit dictionary

我想在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]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然不是那么困难,但我找不到参考,任何想法?

adr*_*nks 33

看看CollectionAssert.AreEquivalent.这将声明两个词典具有相同的内容,但不一定是相同的实例.

  • 我以为他们只是为了IEnumerable?根据我的测试,字典似乎不起作用. (2认同)
  • [NUnit文档](http://www.nunit.org/index.php?p=collectionAssert&amp;r=2.4)否则表示:“如果两个集合包含相同顺序的相同对象,则AreEqual重载成功。AreEquivalent测试是否这些集合包含相同的对象,而与顺序无关。” (2认同)