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



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

IEnumerable<Account>

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

由于IEnumerable没有.Count()功能,我应该如何检查返回IEnumerable中的项目数?我应该将此IEnumerable转换为List,然后执行Count吗?有没有更好的方法或更官方的方法?

提前谢谢。

IEnumerable<T>确实有一个通过 LINQ Count()方法。

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

从测试的角度来看,您可能不关心返回的Account:您关心返回了正确的Account。我会相应地重写我的测试。

最新更新