代码之家  ›  专栏  ›  技术社区  ›  Brandon

模拟和IQueryable<t>

  •  4
  • Brandon  · 技术社区  · 16 年前

    我在尝试测试以下基于NHibernate的iRepository时遇到了一个问题:

    public class NHibernateRepository<T>: Disposable, IRepository<T> 
        where T : IdentifiableObject
    {
        ...
    
        public IQueryable<T> Query()
        {
            return NHibernateSession.Linq<T>();
        }
    }
    

    怎么才能假装回来呢 IQueryable<T> 以交换特定表达式的方式返回给定集合。我觉得我对 可查询

    1 回复  |  直到 7 年前
        1
  •  7
  •   burning_LEGION    12 年前

    Moq 那将是:

    mockRepository.Expect( r => r.Query() ).Returns( myEnumerable.AsQueriable() );
    

    RhinoMocks 那将是:

    Expect.Call( repository.Query() ).Return( myEnumerable.AsQueriable() );