NHibernateとRhinomocksを使用していますが、必要なものをテストするのに問題があります。データベースにアクセスせずに次のリポジトリメソッドをテストしたいと思います(_sessionはISessionとしてリポジトリに挿入されます)。
public class Repository : IRepository
{
(... code snipped for brevity ...)
public T FindBy<T>(Expression<Func<T, bool>> where)
{
return _session.Linq<T>().Where(where).FirstOrDefault();
}
}
私の最初のアプローチは、ISessionをモックし、Linqが呼び出されたときにIQueryableスタブ(手動でコーディング)を返すことです。データベースにアクセスせずにLinqクエリコードをテストするために、memeoryでクエリしたいCustomerオブジェクトのIListがあります。そして、これがどのようになるかはわかりません。IQueryableの独自の実装を作成しますか?もしそうなら、誰かがこのアプローチのためにこれをしましたか?それとも他の道を見る必要がありますか?
ありがとう!