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