对 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 编辑。我会相应地重写我的测试。
我正在为我的 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 编辑。我会相应地重写我的测试。