Thomas Bandt

Über mich | Kontakt | Archiv

Mocken was nicht zu mocken ist

Auf der dotnet Cologne vergangenen Freitag hielt Christoph Wille einen Vortrag über Code Contracts, in dem dann auch die Sprache auf ein Projekt von Microsoft Research kam, was ich meine Ohren spitzen ließ: das Moles Isolation Framework:

"Moles is a lightweight framework for test stubs and detours in .NET that is based on delegates. Moles was designed provide a minimal overhead to the Pex white box analysis, and it encourages programmatic models rather than record/replay tests. Moles may be used to detour any .NET method, including non-virtual/static methods in sealed types."

Auf gut Deutsch: damit geht zu mocken, was eigentlich nicht zu mocken ist - zumindest nicht mit Standardwerkzeugen wie Rhino.Mocks.

Beispiele wären z.B. DateTime.Now oder Guid, simpelste System-Funktionen, für die man heute üblicherweise noch einen Wrapper benötigt, was die Konfiguration natürlich enorm aufbläht.

Wie das Ganze mit Visual Studio und MSTest einzusetzen ist, kann man hier nachlesen. Es wird auch bereits eine Unterstützung für andere Frameworks wie xUnit.net oder nunit mitgeliefert. leider schaut es aber so aus, dass der jeweilige Testrunner dann vom Moles-Runner gestartet werden muss, etwas, was ich auf Anhieb mit meinen Werkzeugen (ReSharper 5 + nunit) nicht hinbekommen habe. Da es meinen Prinzipien zuwider läuft mich zu stark von Addons in der Arbeit abhängig zu machen, habe ich es dann auch erst einmal für mich persönlich auf Eis gelegt.

Aber vielleicht arbeitet ja jemand mit MSTest, für den ist es sicher schon heute eine große Hilfe. Und ich bin sicher, dass auch eine Integration für ReSharper und nunit nicht lange auf sich warten lassen wird ... (Tipps sind willkommne).

Kommentare

  1. Albert Weinert schrieb am Mittwoch, 2. Juni 2010 22:33:00 Uhr:

    Da hilft dann wohl nur TypeMock und JustMock
  2. Rickard Nilsson schrieb am Montag, 20. Juni 2011 21:59:00 Uhr:

    I'm not entirely sure what your asking but if I'm correct, you're wondering whether it is possible to use Moles with NUNit (or your unit testing framework of choice), and it is. I think JetBrains are also working on Moles support in version 6.


« Zurück  |  Weiter »