Модульное тестирование IList с помощью CollectionAssert

Платформа MSTest имеет CollectionAssert, который принимает ICollections. Мой метод возвращает IList. Очевидно, список не является коллекцией.

Есть ли способы сделать мой IList ICollection?


person Boris Callens    schedule 19.03.2009    source источник
comment
Проблема подключения для этого. Обычный ответ Microsoft, tsss. connect.microsoft.com/VisualStudio/feedback/details/477870/   -  person Rudi    schedule 08.06.2012


Ответы (2)


Вы можете вызвать на нем метод расширения ToArray() - Array реализует ICollection

Редактировать: Кроме того, в то время как List<T> реализует ICollection, IList<T> реализует только ICollection<T>, который не реализует ICollection, поэтому, если вы знаете, что элемент в тесте - это List<T>, вы сможете его бросить...

person Lee    schedule 19.03.2009
comment
Я думаю, что IEnumerable для параметров был бы лучшим выбором. NUnit понял это правильно. - person Gishu; 09.11.2011

Вы можете отправить список

    List<string> actual = new List<string>(){"1","2","3"};
    List<string> expected = new List<string>(){"1","2","**EditCaseFalse**"};
    CollectionAssert.AreEqual(actual,expected)

Я возвращаю Failed (третий элемент не совпадает.)

person salgo60    schedule 20.04.2009
comment
и как именно это связано с вопросом? - person Boris Callens; 21.04.2009
comment
Я отправляю два списка‹string› (IList), которые сравниваются в CollectionAssert, это ваша проблема... - person salgo60; 22.04.2009
comment
Извините, я недостаточно прочитал ваш ответ. Пожалуйста, обратитесь к ответу @ Lee о том, почему это работает, но не является решением моей проблемы. - person Boris Callens; 08.11.2011
comment
Я отредактировал ваш ответ, чтобы удалить немного шума, чтобы фактический ответ был более четким. Если вы не возражаете, пожалуйста, не стесняйтесь откатиться. - person Boris Callens; 08.11.2011