我被要求为某些功能编写一些单元测试,但坦率地说,我不太确定这样做的必要性或有用性对于这个特殊的一段代码。我绝不试图质疑单元测试的必要性或有用性。
所讨论的代码非常简单并且被大量使用。基本上它是 .Skip() 和 .Take() 扩展方法的包装。在我看来,这些方法的整体合法性值得怀疑。
代码基本上是这样的:
public IQueryable<T> Page(IQueryable<T> query, int page, int size)
{
if(query == null) throw new ArgumentNullException("query");
if(page < 0) throw new ArgumentOutOfRangeException("page");
if(page < 0) throw new ArgumentOutOfRangeException("size");
return query.Skip(page * size).Take(size);
}
当然,我可以对预期的异常进行单元测试,但是还能做什么呢?很可能我没有抓住重点,那么这是怎么回事呢?
您只需调用静态集合即可AsQueryable http://msdn.microsoft.com/en-us/library/bb353734.aspx
List<T> dummyData = new List<T>();
//Add data
var result = Page(dummyData.AsQueryable(), 0, 10);
//Perform assertions on result.
如果您实际上只是想测试您的分页是否正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)