Wenn ich eine Sammlung lassen Moq verspotten die GetEnumerator implementieren die GetEnumerator einer anderen Sammlung zurückrufen, ich die richtigen Ergebnisse, wenn ich Movenext/Strom und foreach aufrufen.Ergebnis Ansicht nicht korrekt in VS-Debugger Aufzählen
Wenn ich versuche, die Ergebnisansicht aus dem Visual Studio-Debugger zu verwenden, bekomme ich "Enumeration ergab keine Ergebnisse". Gibt es einen Grund dafür? Ist es nicht nur das Aufzählen und Zwischenspeichern?
var dbParameterMock1 = CreateDbParameterMock("@Parameter1", 1);
var dbParameters = new ArrayList { dbParameterMock1.Object };
var dbParameterCollectionMock = new Mock<DbParameterCollection>();
dbParameterCollectionMock.Setup(collection => collection.GetEnumerator()).Returns(dbParameters.GetEnumerator());
return dbParameterCollectionMock;
Dank für die Mühe dankt; eine Idee, warum es das zweite Mal null zurückgibt? GetEnumerator soll jedes Mal einen neuen Enumerator zurückgeben ... außer ... Wie dumm ich bin! Während ich tippte, erkannte ich, dass es den vorherigen Wert verwendet, anstatt GetEnumerator() erneut aufzurufen. Ich sollte es mit einem Lambda versuchen. (Ist aber neugierig, das ist null statt einer entsorgten Ausnahme ...) –