我正在尝试使用.net mvc 4和流利的nhibernate来创建应用程序。如何为使用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;
}
//...
}
是的,嘲笑'session'变量是解决方案。然后,您可以验证对后续流畅方法的调用是否正确完成。有什么问题? – BartoszKP