Ich möchte beginnen, Mock-Objekte in meinen Delphi-Projekten zu verwenden.Was ist deine Lieblingsspionierbibliothek von Delphi?
Also meine Frage ist, was ist Ihr Favorit und warum:
Nach einem schnellen google habe ich die gefunden?
Ich möchte beginnen, Mock-Objekte in meinen Delphi-Projekten zu verwenden.Was ist deine Lieblingsspionierbibliothek von Delphi?
Also meine Frage ist, was ist Ihr Favorit und warum:
Nach einem schnellen google habe ich die gefunden?
Woaw, ich bin der Projektleiter von PascalMock und es ist das erste Mal, dass ich von Delphi Mock Wizard gehört habe! Sehr schöne Ergänzung zu PascalMock.
BTW haben Sie auch einige kleinere Mock Frameworks:
Vielleicht ein paar andere, die Herum gibt es?
Auch PascalMock ist Open Source und Anregungen oder Verbesserungsvorschläge sind willkommen.
PS: Die neueste PascalMock Version von CVS auf die Version 1.1 zusätzliche Funktionen hinzufügen, wie:
Obwohl es stabil ist, hat PascalMock wurde seit Jahren nicht mehr gearbeitet.
Es gibt eine neue Scheinbibliothek namens . Es funktioniert nur mit Delphi XE2 oder neuer.
Delphi Mock Wizard generiert nur Assistenten für Pascal Mock. Sie sind keine konkurrierenden Implementierungen.
Versuchen Sie Dsharp. Es ist wie Delphi Mocks, aber ohne Memory Leaks.
IMHO DSHARP ist besser, obwohl ich zuerst mit Delphi Mocks aufgeregt war.
Unsere Open Source mORMot framework ist nun in der Lage, in seiner instabilen Version, zu Stummel oder Mock jede Delphi-Schnittstelle.
Wie üblich ist der beste Weg, um zu erklären, was eine Bibliothek tut, den Code zu betrachten, der sie benutzt. Hier ist ein Beispiel (ähnlich dem mit RhinoMocks ausgeliefert) zu überprüfen, dass, wenn wir die „Details vergessen“ Szenario ausführen, erinnerten wir uns richtig die Save()
Methode aufzurufen:
procedure TMyTest.ForgotMyPassword;
var SmsSender: ISmsSender;
UserRepository: IUserRepository;
begin
TInterfaceStub.Create(TypeInfo(ISmsSender),SmsSender).
Returns('Send',[true]);
TInterfaceMock.Create(TypeInfo(IUserRepository),UserRepository,self).
ExpectsCount('Save',qoEqualTo,1);
with TLoginController.Create(UserRepository,SmsSender) do
try
ForgotMyPassword('toto');
finally
Free;
end;
end;
Und ...Das ist alles, da die Verifizierung stattfindet, wenn die IUserRepository
Instanz freigegeben wird.
Verfügbare Funktionen (einige im Vergleich zu anderen Delphi spöttischen Frameworks einzigartig sind):
var
und out
Parameter als zurückgegebenen Wert, zusätzlich zu einer Funktion Ergebnis;Siehe ähnlichen Blog-Artikel:
Werfen Sie einen Blick auf "Delphi Mocks" und "Delphi Mocks: The Basics"