Sto cercando di prendere in giro DbContext e DbSet. Questo funziona per i miei precedenti test di unità, ma il problema si verifica mentre il mio codice stava chiamando il metodo ToList su DbSet la seconda volta.DbSet mock, nessun risultato durante la chiamata ToList secondly
First dbSet.ToList() restituisce risultati di mocking. Secondo uno restituisce 0 elementi;
var queryableData = new List<string>{ "a", "b", "c" }.AsQueryable();
var mockDbSet = new Mock<DbSet<string>>();
var q = mockDbSet.As<IQueryable<string>>();
q.Setup(m => m.Provider).Returns(queryableData.Provider);
q.Setup(m => m.Expression).Returns(queryableData.Expression);
q.Setup(m => m.ElementType).Returns(queryableData.ElementType);
q.Setup(m => m.GetEnumerator()).Returns(queryableData.GetEnumerator());
DbSet<string> dbset = mockDbSet.Object;
IQueryable<string> query = dbset;
//RESULTS: abc
var a1 = dbset.ToList();
foreach (var a in a1)
Console.Write(a);
//NO RESULTS
var a2 = dbset.ToList();
foreach (var a in a2)
Console.Write(a);
Questo mi stava uccidendo. Grande cattura. – RMD
Questo è stato un orso per me per un paio di mesi. Finalmente sono entrato in una situazione in cui non potevo evitarlo. Questo ha aiutato così tanto! –
Questo ha reso la mia vita molto migliore. Grazie. –