我已經能夠用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