würde Ich magWie man frühere Erwartungen an ein Objekt löscht? in einem bestimmten Test
_stubRepository.Stub(Contains(null)).IgnoreArguments().Return(true);
aber dann einen Rückgabewert einzurichten, diese Erwartung außer Kraft setzen false zurück.
Etwas wie:
_stubRepository.ClearExpectations(); //<- this does not exist, I'm just making something up
_stubRepository.Stub(Contains(null)).IgnoreArguments().Return(false);
Hinweis, ich auf dem zweiten Aufruf falsch zurück nicht die Erwartung, ich will die erste Erwartung außer Kraft zu setzen.
Dies würde helfen, mein Testszenario erheblich zu vereinfachen.
In internen Rhino Mock sprechen, mit Wiederholen. Jeder erzeugt eine wiederholbare Erwartung, die bei der Wiedergabe normale Erwartungen übertrifft. Ich empfehle jedoch, BackToRecord zu verwenden. –
Ah, ich habe alles außer dem Aufruf von Replay() herausgefunden. –
Dies ist eine Sache, die nur von Menschen bekannt ist, die RhinoMocks seit 3.4 oder älter benutzen. RhinoMocks arbeitete mit Record-Replay, das bedeutet, dass ein Mock explizit in den Replay-Modus gesetzt werden musste. Mit 3,5, zum Glück ist das weg, Mocks sind immer im Replay-Modus (zumindest für den benutzerdefinierten Code). Bis Sie es in den Aufnahmemodus zurückversetzen - außer dass Sie die Erwartungen klären, sehe ich keinen Grund, dies zu tun. Ich wollte bereits einen Patch für diese beiden Zeilen schreiben, um die Erwartungen bequem zurückzusetzen. –