我已经能够用Moq使用此link从实体框架中模拟DbSet
的。如何Moq实体框架SqlQuery调用
但是,我现在想知道我可以如何模拟对SqlQuery的调用。不知道这是可能的还是因为它依赖于模拟的数据库上下文知道什么“查询”被调用。
下面是我想嘲笑的。
var myObjects = DbContext.Database
.SqlQuery<MyObject>("exec [dbo].[my_sproc] {0}", "some_value")
.ToList();
我目前还没有尝试过任何东西,因为不知道如何开始嘲笑这个例子。
的DbSet
的嘲弄低于并再次重申,我可以正确嘲笑返回MyObject
的DbSet
的,但现在我试图嘲弄返回的MyObject
列表SQLQuery对的。
var dbContext = new Mock<MyDbContext>();
dbContext.Setup(m => m.MyObjects).Returns(mockObjects.Object);
dbContext.Setup(m => m.Database.SqlQuery... something along these lines
这个工作对我来说太棒了。对我而言,这比将上述接受的答案中的查询逻辑抽象为帮助者更可取。 – JamesWampler 2015-10-01 22:16:14