Подтвердить что ты не робот

NUnit: словарь

Я хочу один вкладыш, в 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]);
    }
}

Конечно, это не так сложно, но я не могу найти ссылку, любую идею?

4b9b3361

Ответ 1

Посмотрите CollectionAssert.AreEquivalent. Это будет утверждать, что два словаря имеют одинаковое содержимое, но не обязательно являются одним и тем же экземпляром.

Ответ 2

Вы можете написать утверждения агностики фреймов, используя библиотеку с именем Should. Он также имеет очень хороший плавный синтаксис, который можно использовать, если вам нравятся плавные интерфейсы. У меня была запись в блоге, связанная с тем же.

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

Ответ 3

Попробуйте использовать CollectionAssert.AreEqual или CollecitonAssert.AreEquivalent.

Оба будут сравнивать элементы коллекции (а не ссылку на коллекцию), но , как обсуждалось ранее. Разница заключается в порядке элементов в коллекциях:

  • AreEqual - коллекции должны иметь одинаковое количество и содержать одинаковые элементы в одинаковом порядке.
  • AreEquivalent - коллекции должны содержать одинаковые элементы, но совпадение может быть в любом порядке.