Neuling versucht Moq für die enumerable-Methode
Ich versuche zu sehen, ob Moq ist etwas, das ich verwenden möchte in ein neues Projekt wie die anderen mocking-frameworks die ich benutzt habe sind herausfordernd IMHO. So zum Beispiel habe ich eine Methode als solche:
IEnumerable<PickList> GetPickLists();
Ich bin mir nicht sicher, wie ich soll zu verspotten, dieses... ich habe versucht, so etwas wie dieses, aber ich bin immer compliation Fehler (ich weiß, das folgende
Kehrt() nicht korrekt, aber kann nicht herausfinden, was im Körper Gibt:
var mockCrm = new Mock<ICrmProvider>();
mockCrm.Setup<IEnumerable<PickList>>(foo => foo.GetPickLists())
.Returns<IEnumerable<PickList>>({});
Auch, versuchen zu verspotten, so etwas wie diese zwei Methoden:
CustomerSyncResult ApplyActions(IEnumerable<CustomerAction> actions);
IEnumerable<Customer> GetCustomers(IEnumerable<string> crmIDs, IEnumerable<string> emails);
Ich weiß, ich verlange eine Decke Frage, aber ich habe eine verdammt Zeit bekommen begann. Das CHM in der download hat nicht genug Proben für mich und einige der Anleitungen zu sein scheinen mit veralteten Methoden, wie auch nicht für Enumerationen, die macht es schwierig für mich 🙁
Irgendwelche Tipps würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
Den QuickStart ist eine gute Referenz.
Einige Beispiele für die anderen Methoden:
Nebenbei machen die generische IEnumerable-in der ursprünglichen Benutzeroberfläche für bessere Sicherheit.
Können Sie auch die neuen Moq v4 funktionelle Spezifikationen:
Dass ist nicht so gut dokumentiert derzeit. Beachten Sie, dass Sie nicht mehr schreiben müssen
mock.Object
. Einige links:Die genaue syntax (mit.Der Inhalt der Listen, etc.) wird davon abhängen, was Sie versuchen zu erreichen.
It.IsAny
passen jedes argument, das macht die Sache einfacher, wenn man mit Folge-oder collection-Parameter.new
Schlüsselwort) und pass in mocks für die Konstruktor-Argumente.