Sono stato in grado di simulare DbSet
dall'entità framework con Moq utilizzando questo link.How to Moq Entity Framework SqlQuery chiama
Tuttavia, vorrei ora sapere come potrei prendere in giro la chiamata a SqlQuery. Non sono sicuro se questo sia possibile o in che modo si basa sul contesto db deriso sapendo quale "query" viene chiamata.
Di seguito è quello che sto cercando di deridere.
var myObjects = DbContext.Database
.SqlQuery<MyObject>("exec [dbo].[my_sproc] {0}", "some_value")
.ToList();
Attualmente non ho provato nulla, non sapevo come iniziare a deridere questo esempio.
Il beffardo del DbSet
è sotto ea ribadire, posso correttamente deridere la restituzione di un DbSet
di MyObject
's, ma ora sto cercando di prendere in giro uno sqlquery che restituisce un elenco di MyObject
' s.
var dbContext = new Mock<MyDbContext>();
dbContext.Setup(m => m.MyObjects).Returns(mockObjects.Object);
dbContext.Setup(m => m.Database.SqlQuery... something along these lines
Questo ha funzionato grande per me. Per me, era preferibile astrarre la logica dell'interrogazione in un aiutante, come nella risposta sopra riportata. – JamesWampler