Ich bekomme ein Moq-Objekt, das bei aufeinander folgenden Aufrufen einer Methode unterschiedliche Werte zurückgibt. Dies wird durch diese Erweiterungsmethode durchgeführt:Rückgabe verschiedener Ergebnisse oder Auslösen von Ausnahmen aus aufeinanderfolgenden Aufrufen an Moq Mock
Jetzt möchte ich einen der Aufrufe eine Ausnahme auslösen, während andere etwas zurückgeben. Hat jemand das schon mal gemacht?
Wenn ich das tun
mock.Setup(m => m.SomeMethod())
.Throws(new Exception());
mock.Setup(m => m.SomeMethod())
.Returns("ok");
dann das erste Setup überschrieben wird und nur die zweite Einrichtung weiterhin besteht.
Diese (eher gewundenen) Lösung nicht mehr notwendig ist, da Moq Unterstützung für die SetupSequence Methode hat. Siehe meine Antwort unten für ein Beispiel. – nashwan