我正在开发一个应用程序,使用 NHibernate 进行 ORM,NUnit 用于单元测试,Ninject 用于我的 DI。我像这样嘲笑ISession:
var session = new Mock<ISession>();
使用常规的非模拟会话对象,我可以使用 LINQ 扩展方法查询它们,如下所示:
var result = Session.Query<MyEntity>();
但是当我尝试用下面的代码来模拟这个时......
session.Setup(s => s.Query<MyEntity>());
...我得到一个运行时“不支持”异常:
Expression references a method that does not belong to the mocked object: s => s.Query<MyEntity>()
如何在 Moq/NHibernate 中模拟这样的基本查询?