私はスタブしようとする次のコードを持っていますISession.Query<UnitModel>()
。
var unitList = new List<UnitModel>()
{
new UnitModel(){Name = "meters", Symbol="m"},
new UnitModel(){Name="grams", Symbol="g"}
};
MockRepository.GenerateMock<ISession>().Stub(x => x.Query<UnitModel>()).Return(unitList.AsQueryable<UnitModel>());
実行中、これは例外をスローします:
System.InvalidOperationException : Type 'System.Linq.EnumerableQuery`1[[MIB.DomainModels.UnitModel, MIB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' doesn't match the return type 'NHibernate.Engine.ISessionImplementor' for method 'ISession.GetSessionImplementation();'
私はここで何が間違っているのですか?スタブはどのようにすればよいISession.Query<UnitModel>()
ですか?
NHibernate 3.3.0.4000
編集:
UnitModel
クラス:
public class UnitModel
{
public virtual string Name { get; set; }
public virtual string Symbol { get; set; }
}