我正在使用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存根(手工编码)。 我有一个客户对象的IList,我想在内存中查询它以测试我的Linq查询代码,而不必访问数据库。 但我不确定这会是什么样子。 我需要编写自己的IQueryable实现吗? 如果是这样,有人为这种方法做过吗? 还是我需要看其他途径?
谢谢!