2008-11-24 10 views
15

Ich bin neu zu verspotten, ich habe ein neues .net Web-Projekt, das in UI-> BLL-> DAL-> DB-Struktur ist, verwende ich NUnit, um einige Tests derzeit zu tun. Ich beabsichtige, es zu benutzen, um die mittlere Stufe zu testen, so dass ich nicht wirklich in die DB schreiben muss.Spott für Dummies?

Nun, ich habe noch nie Spott gemacht, weiß nicht recht, wo ich anfangen soll, also suche ich nach einem spöttischen Rahmen, der einige End-to-End-Samples hat! Könnte mir jemand ein spöttisches Material zeigen, das von Anfang an beginnt und mit vollen Proben bitte?

Vielen Dank,

Ray.

Antwort

3

Rhino Mocks ist ein Framework, das Sie verwenden könnten, dass ich ein wenig verwendet habe.

Cheat sheet hat ein paar Links, wenn Sie einige andere ausprobieren möchten, obwohl der Artikel ein bisschen veraltet ist. ?

+0

Ich zweite Rhino Mocks Ich hob es in einer Stunde. –

3

TypeMock ...

gut, am besten für mich spöttisch - Schnittstellen, einige Umgestaltung des Codes ein bisschen und herauszufinden, was Sie so testen möchten, dass Sie jede Verspottung nicht brauchen. Oder - jede Abhängigkeitsinjektion, einige Sachen zu verspotten (aber bevor Sie etwas natürlich umgestalten)

9

Sie sollten einige Videos über das Spotten auf Dimecasts.net überprüfen, es ist eine schnelle Weise, ein Gefühl über was zu bekommen es geht um Verspottung und Sie beginnen mit Ihrem eigenen Code.

Introduction to Moq

Introduction to RhinoMocks

+0

Die sind wirklich sehr nett, haben viel gelernt von diesen kurzen Clips :). – Morph

4

Im Moment gibt es eine Reihe von verschiedenen spöttischen Frameworks. Ich würde empfehlen, dass Sie entweder RhinoMock oder TypeMock betrachten. Beide sind frei für persönliche/Open-Source-Projekte. TypeMock hat auch eine Firmenlizenz.

RhinoMock zwingt Sie, Ihren Code für die Testbarkeit umzuformen (wenn Sie bereits über testbaren Code verfügen, tun Sie das gut). Dies erfordert mehr Arbeit, aber es wird Sie mit Code verlassen, der lose gekoppelt ist, was ein Segen für sich ist. Aus diesem Grund gibt es bestimmte Konstrukte, die Sie einfach nicht direkt mit Rhino verhöhnen können. Sie können jedoch immer zusätzliche Ebenen der Indirektion einführen und sie auf diese Weise lösen. Die Quintessenz ist jedoch: Sie müssen noch etwas mehr arbeiten, aber letztendlich wird das Refactoring Ihrem Code zugute kommen.

TypeMock dagegen funktioniert, indem es den Code im laufenden Betrieb ändert (er verwendet die Profiler-API, um Code zu injizieren). Auf diese Weise können Sie Spott für Code verwenden, der für diese Art von Tests nicht geeignet ist. Mit TypeMock können Sie fast alles nachspionieren (mit Ausnahme von mscorlib), so dass es leicht zu starten ist und mit altem Code gut funktioniert. Da Sie Ihren Code jedoch nicht umgestalten müssen, erhalten Sie nicht den zusätzlichen Vorteil von lose gekoppelten Typen. Außerdem führt TypeMock manchmal zu sehr seltsamen Fehlern, da der laufende Code geändert wird.