我被要求为某些功能编写一些单元测试,但坦率地说,我不太确定对这段特定代码这样做的必要性或有用性。我绝不会试图质疑一般单元测试的必要性或有用性。
有问题的代码非常简单,并且被大量使用。基本上它是 .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);
}
当然我可以对预期的异常进行单元测试,但是还有什么呢?很可能是我错过了重点,所以这是怎么回事?