Ich konnte DbSet
's aus Entity Framework mit Moq mit dieser link.Wie Moq Entity Framework SqlQuery Aufrufe
Allerdings würde ich jetzt gerne wissen, wie ich den Aufruf von SqlQuery verspotten könnte. Nicht sicher, ob dies möglich ist oder wie es auf dem gespotteten Db-Kontext beruht, wenn man weiß, welche "Abfrage" aufgerufen wird.
Unten ist was ich versuche zu verspotten.
var myObjects = DbContext.Database
.SqlQuery<MyObject>("exec [dbo].[my_sproc] {0}", "some_value")
.ToList();
Ich habe noch nichts versucht, so wusste nicht, wie dieses Beispiel beginnen spöttisch.
Die Verspottung der DbSet
ist unterhalb und Reiterieren wieder, ich richtig ein DbSet
von MyObject
Rückkehr spotten kann ‚s aber jetzt bin versucht, eine sqlquery zu verspotten, die eine Liste von MyObject
gibt‘ s.
var dbContext = new Mock<MyDbContext>();
dbContext.Setup(m => m.MyObjects).Returns(mockObjects.Object);
dbContext.Setup(m => m.Database.SqlQuery... something along these lines
Das ist für mich großartig gearbeitet. Für mich war dies besser, als die Abfragelogik in einen Helfer zu abstrahieren, wie in der obigen Antwort. – JamesWampler