2016-05-19 6 views
-2

MSTest обеспечивает CollectionAssert класс и на основе этого вопроса я сравниваю возвращенное Словарь соответствует мои ожидания: .NET Dictionaries have same keys and values, but aren't "equal"Тест два Словари содержат одни и те же элементы

Однако я намеренно заселена мой словарь в другом порядке, возвращенному версии, но с теми же самыми элементами ... теперь CollectionAssert.AreEqual терпит неудачу, когда я звоню:

CollectionAssert.AreEqual((ICollection)expected, (ICollection)ret)

Это не кажется очень хороший тест на равенство - мне нужно, чтобы катить мой собственный, или же MSTest обеспечить что-то из б вол?

ответ

2

В этом же классе есть еще один метод, называемый AreEquivalent();

Это вернет вам истину, если два объекта ICollection, которые вы отправляете как параметр, имеют одинаковые элементы с одинаковой суммой. В этом случае порядок не имеет значения. Это самая большая разница между AreEqual() и AreEquivalent().

Ниже вы можете найти официальное объяснение на странице MSDN.

«Проверяет, что указанные коллекции эквивалентны. «.

И ваш вызов функции будет таким же, как и для AreEqual(), см. Ниже;

CollectionAssert.AreEquivalent((ICollection)expected, (ICollection)ret) 
2

Вы можете использовать AreEquivalent:

CollectionAssert.AreEquivalent((ICollection)expected, (ICollection)ret) 

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

 Смежные вопросы

  • Нет связанных вопросов^_^