15 Stimmen

Spott für Dummies?

Ich bin neu zu mocking, ich habe ein neues .net-Web-Projekt, das in UI->BLL->DAL->DB-Struktur ist, ich verwende NUnit, um einige Tests derzeit zu tun. Ich beabsichtige, es zu verwenden, um Middle Tier zu testen, so dass ich nicht tatsächlich in DB schreiben müssen.

Nun, ich habe nie getan, alle Mocking, nicht ganz wissen, wo zu beginnen, so ich bin auf der Suche nach einem Mocking-Framework, das einige Ende zu Ende Beispiele hat! Könnte mir jemand ein Mocking-Material zeigen, das von Anfang an und mit vollständigen Beispielen beginnt, bitte?

Ich danke Ihnen,

Ray.

9voto

rodbv Punkte 5104

Sie sollten sich einige Videos über Mocking auf Dimecasts.net ansehen. Es ist ein schneller Weg, um ein Gefühl dafür zu bekommen, worum es beim Mocking geht, und um mit Ihrem eigenen Code zu beginnen.

Einführung in Moq

Einführung in RhinoMocks

4voto

Brian Rasmussen Punkte 112118

Zurzeit gibt es eine Reihe verschiedener Mocking-Frameworks. Ich würde empfehlen, dass Sie entweder einen Blick auf RhinoMock oder TypeMock werfen. Beide sind für persönliche / Open-Source-Projekte kostenlos. TypeMock hat auch eine Unternehmenslizenz.

RhinoMock zwingt Sie dazu, Ihren Code für die Testbarkeit zu überarbeiten (falls erforderlich, wenn Sie bereits testbaren Code haben, sind Sie gut dran). Dies erfordert mehr Arbeit, aber es wird Sie mit Code verlassen, der lose gekoppelt ist, was an sich ein Segen ist. Aus diesem Grund gibt es bestimmte Konstrukte, die Sie mit Rhino nicht direkt nachbilden können. Sie können jedoch immer zusätzliche Ebenen der Indirektion einführen und das Problem auf diese Weise lösen. Die Quintessenz ist jedoch: Sie müssen etwas mehr Arbeit leisten, aber letztendlich wird das Refactoring Ihrem Code zugute kommen.

TypeMock hingegen modifiziert den Code on-the-fly (es verwendet die Profiler-API, um Code zu injizieren). Dadurch können Sie Mocking für Code einsetzen, der sich sonst nicht für diese Art von Tests eignet. Mit TypeMock können Sie so ziemlich alles mocken (außer mscorlib), so dass der Einstieg leicht ist und es gut mit Legacy-Code funktioniert. Da Sie jedoch nicht gezwungen sind, Ihren Code zu refaktorisieren, erhalten Sie nicht den zusätzlichen Vorteil der losen Kopplung von Typen. Außerdem führt TypeMock manchmal zu sehr merkwürdigen Fehlern, da der laufende Code verändert wird.

3voto

JB King Punkte 11972

Nashorn-Spötter ist ein Rahmen, den Sie verwenden können und den ich ein wenig genutzt habe.

Spickzettel hat ein paar Links, wenn Sie andere ausprobieren wollen, obwohl der Artikel etwas veraltet ist.

3voto

Paul Kapustin Punkte 3257

TypeMock?...

Nun, am besten Mocking für mich - Schnittstellen, einige Refactoring Ihres Codes ein bisschen und herauszufinden, was Sie wollen, um zu testen, so dass Sie keine Mocking benötigen. Oder - jede Art von Dependency Injection, um einige Dinge zu mockieren (aber natürlich bevor man ein wenig refaktorisieren muss)

1voto

Steve Freeman Punkte 2659

Vielleicht interessieren Sie sich für unser in Arbeit befindliches Buch http://www.mockobjects.com/book . Es ist Java, aber die Prinzipien sind die gleichen.

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