【问题标题】:Unit test the count in an IEnumerable [duplicate]单元测试 IEnumerable 中的计数 [重复]
【发布时间】:2015-04-01 00:31:02
【问题描述】:

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

IEnumerable<Account>

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

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

提前致谢。

【问题讨论】:

标签: c# list ienumerable unit-testing


【解决方案1】:

IEnumerable&lt;T&gt; 确实有一个 Count() 方法,通过 LINQ。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多