Momentan lese ich ein Buch (Pro ASP.Net Framework).
In diesem Buch schlägt der Autor vor, ein Moq-Framework zu verwenden, um TDD zu erstellen.
%Vor%In der Modellschicht haben wir ein FakeRepository und ein SqlRepository definiert.
Tatsache ist, dass ich den Vorteil der Verwendung dieses moq-Frameworks nicht sehe. Warum benutzen wir nicht nur unser FakeRepository? Oder löschen Sie unser FakeRepository und fügen Sie gefälschte Produkte hinzu?
Zuerst dachte ich, dass das Moq-Framework da ist, um gefälschte Daten zu generieren, also müssen Sie nicht, wenn Sie zum Beispiel 100 gefälschte Objekte generieren müssen.
Was ich vermisse?
Einige Vorteile von Mock-Frameworks gegenüber handgerollten Mocks:
Einige Nachteile:
(Das ist, was ich gerade jetzt denken kann. Fühlen Sie sich frei, mehr zu bearbeiten und hinzuzufügen.)
Ein Mocking-Framework befreit Sie von der Last, einzigartige Mock-Objekte zu erstellen, die spezifische Daten für Ihren Testfall zurückgeben. Sie ermöglichen auch zu testen, ob auf bestimmte Methoden oder Eigenschaften zugegriffen wurde oder nicht (durch Konsumenten des Mock-Objekts). Auf diese Weise können Sie bestimmte erwartete Verhaltensweisen leichter testen und somit durchsetzen.
Mock-Frameworks sind nur Werkzeuge. Sicher, Sie könnten es manuell tun, aber Sie könnten Zeit damit verbringen, Klassen zu warten, die nur zum Testen dienen.
Eine ähnliche Frage ist hier verfügbar.
Vielleicht möchten Sie dies lesen Manuelles Mocking: Widerstand gegen das Eindringen von Punkten und Klammern
Wir verwenden es, um einen gefälschten Server in einer Client / Server-Umgebung zu erstellen.
Auf diese Weise müssen Anrufe nicht den ganzen Weg vom Client zum Server zur DB und wieder zurück gehen. Sie gehen einfach zum Mock-Server, der aufgefordert wird, ein bestimmtes Objekt / einen bestimmten Wert für einen bestimmten Anruf zurückzugeben und zu erwarten, dass bestimmte Anrufe getätigt werden.
Es gibt mehr Frameworks als nur Moq; Es gibt RhinoMocks und TypeMock (mein persönlicher Favorit, obwohl es Geld kostet, es sei denn, es ist ein Open-Source-Projekt), um ein paar zu nennen.
Tags und Links mocking