.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;
}
//...
}