2017-08-14 14 views
0

私はいくつかのNHibernateリポジトリを持っています。私はそれらをカバーするためにSpecFlowテストをしたいと思います。実際の実装を使用してNSubstituteを使ってプロパティをモックする方法

私はそうのようなスタッフのためのリポジトリがあります。

public class StaffRepository : NHibernateRepository<IStaff>, 
{ 
    public IEnumerable<IStaff> GetByStaffId(string staffId) 
    { 
     return Repository.Where(ab => ab.StaffId == staffId); 
    } 
} 

Repositoryが基本型に住んでプロパティである - これは私がモックたいプロパティです。私はすべての私のクラスを注入する構造マップを使用して、その後、そのようStaffRepositoryをからかっています:

pmsRepository = Substitute.For<StaffRepository>(); 
ApplicationContext.Register<IStaffRepository, StaffRepository>(pmsRepository); 

私の問題は、私はそうのようなRepositoryプロパティを嘲笑するとき、次のとおりです。

pmsRepository.Query.Returns(ListOfStaffes.AsQueryable()); 

私はいつも受け取ります次のエラーメッセージが表示されます:

NSubstitute.Exceptions.CouldNotSetReturnDueToNoLastCallException: 'Could not find a call to return from. 

私はここで間違っていますか?

答えて

0

私は最後にそれを理解しました。 Repositoryは仮想または抽象である必要があります。これを仮想に変更して問題を解決しました。

関連する問題