我正在使用 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 实现?如果是这样,有人为这种方法做过吗?还是我需要看看其他途径?
谢谢!