我正在为我的MVC 5互联网应用程序编写一些单元测试。我有一个返回以下内容的服务类:
IEnumerable<Account>
我正在编写一个单元测试来检查返回的IEnumerable<Account>
中的项目数。
由于IEnumerable
没有.Count()
功能,我该如何检查返回的IEnumerable
中的项目数?我应该将此IEnumerable
转换为List
,然后执行Count
吗?是否有更好的方式或更正式的方式来做到这一点?
提前致谢。
答案 0 :(得分:1)
IEnumerable<T>
确实通过LINQ获得Count()
方法。
无论您拨打Count()
还是ToList().Count
,底线都是相同的:它将枚举整个集合。使用哪种方法并不重要。如果基础集合是ICollection<T>
,则例外。在这种情况下,它将跳过枚举整个集合,只返回Count
的{{1}}属性。
从测试的角度来看,您可能并不关心ICollection
返回的数量:您关心正确 {{1 s被退回了。我会相应地重写我的测试。