我正在尝试使用 .net mvc 4 和流利的 nhibernate 创建应用程序。
我创建了ProductsFacade
负责获取数据并将数据插入数据库的程序。方法GetProductsByPageAndCategory
用于从数据库中获取记录页。我想编写单元测试来检查分页是否正常工作。
这很难做到,因为分页必须在单个QueryOver
查询中完成。我不能只编写单独的方法来获取数据,模拟它并编写单独的分页方法。所以我需要模拟数据库。我使用 moq 工具进行模拟。
也许有人可以就如何做到这一点提供一些提示?或任何其他替代方法如何解决我的问题?
public class ProductFacade {
//...
public virtual IList<Product> GetProductsByPageAndCategory(
string category,
int pageNumber,
int pageSize)
{
//IList<Product> products = ;
var productsQuery = _session.QueryOver<Product>();
if (category != null)
{
productsQuery.Where(p => p.Category == category);
}
IList<Product> products = productsQuery
.OrderBy(p => p.Id)
.Desc
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.List<Product>();
return products;
}
//...
}