2015-02-02 1 views
0

Я пишу некоторые модульные тесты для моего интернет-приложения MVC 5. У меня есть класс обслуживания, который возвращает следующее:Единица измерения числа в IEnumerable

IEnumerable<Account> 

Я пишу модульный тест, чтобы проверить количество элементов на возвращаемой IEnumerable<Account>.

Поскольку IEnumerable не имеет функции .Count(), как я должен проверить количество элементов в возвращаемом IEnumerable? Должен ли я преобразовать этот IEnumerable в List, а затем сделать Count? Есть ли лучший способ или более официальный способ сделать это?

Заранее спасибо.

+1

Он использует метод [count method] (http://stackoverflow.com/a/2659292/182821) с помощью методов расширения. – Chris

ответ

1

IEnumerable<T> имеет метод Count() через LINQ.

Если вы звоните по телефону Count() или ToList().Count, то результат будет таким же: он собирается перечислить всю коллекцию. Неважно, какой подход вы используете. Исключением является то, что базовая коллекция - ICollection<T>. В этом случае он пропустит перечисление всей коллекции и просто вернет свойство CountICollection.

С точки зрения тестирования, вы, вероятно, не заботиться о числа из Account s возвращенного: Вы заботитесь о том, что правильныеAccount s были возвращены. Я бы переписал свои тесты соответственно.

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

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