模拟和IQueryable <T>
时间:2020-03-05 18:41:49 来源:igfitidea点击:
尝试测试基于NHibernate的IRepository时遇到了一个问题:
public class NHibernateRepository<T>: Disposable, IRepository<T> where T : IdentifiableObject { ... public IQueryable<T> Query() { return NHibernateSession.Linq<T>(); } }
如何在地狱中模拟以返回给定集合的方式返回IQueryable <T>
以交换某些表达式。我觉得我对IQueryable <T>
有一些误解...
解决方案
回答
在Moq中,它将是:
mockRepository.Expect( r => r.Query() ).Returns( myEnumerable.AsQueriable() );
在RhinoMocks
中将是:
Expect.Call( repository.Query() ).Return( myEnumerable.AsQueriable() );