2008-08-21 5 views
4

Je l'ai rencontré un problème en essayant de tester suivant IRepository basé sur NHibernate:Mocking et IQueryable <T>

public class NHibernateRepository<T>: Disposable, IRepository<T> 
    where T : IdentifiableObject 
{ 
    ... 

    public IQueryable<T> Query() 
    { 
     return NHibernateSession.Linq<T>(); 
    } 
} 

Comment le enfer pour se moquer de retour IQueryable<T> de la manière qu'il retourne en échange donné la collecte certaine expression. Je sens que j'ai un malentendu de IQueryable<T> ...

Répondre

7

En Moq ce serait:

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

En RhinoMocks ce serait:

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