对 IEnumerable 中的计数进行单元测试

Unit test the count in an IEnumerable

我正在为我的 MVC 5 互联网应用程序编写一些单元测试。我有一项服务 class returns 以下内容:

IEnumerable<Account>

我正在编写一个单元测试来检查返回的项目数 IEnumerable<Account>

因为IEnumerable没有.Count()函数,我应该如何查看返回的IEnumerable中的项目数?我是否应该将此 IEnumerable 转换为 List,然后执行 Count?有没有更好的方法或更官方的方法来做到这一点?

提前致谢。

IEnumerable<T> 是否有 Count() 方法,通过 LINQ。

无论调用 Count() 还是 ToList().Count,底线都是一样的:它将枚举整个集合。使用哪种方法并不重要。例外情况是基础集合是 ICollection<T>。在这种情况下,它将跳过枚举整个集合,而只是枚举 return Count 属性 of the ICollection.

从测试的角度来看,您可能不关心 Account 数量 returned:您关心的是 [=26] =] 正确 Account 被 return 编辑。我会相应地重写我的测试。