我正在嘗試使用.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