2 Stimmen

RhinoMocks und Heisenbugs

Ich habe in letzter Zeit RhinoMocks verwendet, aber ich halte in ein Problem laufen. Wenn ich in den Debugger brechen und Schritt über Code, während ein Mock im Aufzeichnungsmodus ist, ich am Ende immer eine Ausnahme in den Zeilen von:

System.InvalidOperationException: Previous method 'SuchAndSuch.ToString();'  
requires a return value or an exception to throw.

Wenn ich jedoch denselben Code ausführe, ohne in den Debugger zu wechseln, wird er erfolgreich ausgeführt und das Mock erstellt.

Ich bin mir ziemlich sicher, dass der Grund dafür ist, dass der Debugger ToString() für Objekte aufruft, um sie in den Locals und anderen Watch Windows anzuzeigen. Da sich der Mock aber im Aufzeichnungsmodus befindet, betrachtet RhinoMocks einen Aufruf von ToString() als ein Einrichten von Erwartungen, was dann nicht ganz korrekt ist. Offensichtlich passiert dies nur bei partiellen Mocks auf konkrete Klassen. Mocks gegen Schnittstellen weisen dieses Verhalten nicht auf.

Ist dieses Problem auch bei anderen Personen aufgetreten? Gibt es eine einfache Lösung? Haben andere Frameworks wie moq oder TypeMock dieses Problem?

Danke,

~ Justin

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X