Moq: Setup verspottet Methode, um nicht auf den ersten Anruf, gelingt auf den zweiten
Was ist die knappste Art und Weise zu verwenden, Moq, zu verhöhnen, eine Methode, die eine exception werfen, wenn er das erste mal aufgerufen wird, dann gelingt das zweite mal aufgerufen wird?
- Moq 4.2 & jetzt höher unterstützt das durch
SetupSequence()
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde
Callback
und Inkrementieren eines Zählers, um zu bestimmen, ob oder nicht, um eine Ausnahme vonCallback
.reader.Setup(r => r.Read()).ReturnsInOrder(true, true, false);
Beginnend mit Moq 4.2, können Sie einfach die eingebaute Methode
SetupSequence()
(wie bereits von @RichardBarnett Kommentar).Beispiel:
Die besten, die ich mir ausgedacht habe, so weit ist diese:
mock.Verify(m => m.Bar(), Times.Exactly(2))
.Phil Haack hat eine interessante blog-post auf Einrichtung einer Methode für die Rückgabe einer bestimmten Reihenfolge der Ergebnisse. Es scheint, dass es wäre ein guter Ausgangspunkt, mit der Arbeit, beteiligt, denn statt einer Sequenz von Werten eines bestimmten Typs, würden Sie jetzt brauchen, um eine Sequenz von Ergebnissen, die konnte den Typ T oder eine Ausnahme.