Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Hat schon jemand Erfahrungen mit PascalMock gesammelt?

  Alt 29. Mär 2007, 17:02
Hallo,
einige kennen vieleicht NMock, mit denen man in NUnit Mocks zum Testen der Klassen erzeugen kann.
So was gibt es auch für Delphi. Das kann man zusammen mit DUnit verwenden.
  • Hat sich das schon jemand angeschaut bzw. Erfahrungen gesammelt?
  • Verwendet hier über haupt jemand Unit Tests bzw praktiziert jemand TDD (test driven development) ?
Ich würde mich über ein paar Antworten freuen.

mfg
MaBuSE

ps: PascalMock findet man unter http://sourceforge.net/projects/pascalmock/

pps: Was ist ein Mock?
In der Wikipedia steht:
Mock-Objekte werden in der testgetriebenen Softwareentwicklung „Dummy“-Objekte genannt, die als Platzhalter für echte Objekte innerhalb von Unit-Tests verwendet werden.

Es ist nicht immer möglich oder erwünscht, ein einzelnes Objekt vollkommen isoliert zu testen. Soll die Interaktion eines Objektes mit seiner Umgebung überprüft werden, muss vor dem eigentlichen Test die Umgebung nachgebildet werden. Das kann umständlich, zeitaufwändig, oder gar nur eingeschränkt oder überhaupt nicht möglich sein.

In diesen Fällen können Mock-Objekte helfen (von englisch to mock, „etwas vortäuschen“). Mock-Objekte implementieren die Schnittstelle, über die das zu testende Objekt auf seine Umgebung zugreift. Sie stellen sicher, dass die erwarteten Methodenaufrufe vollständig, mit den korrekten Parametern und in der erwarteten Reihenfolge durchgeführt werden und geben vordefinierte Ergebnisse an das zu testende Objekt zurück.

Konkret sind Mock-Objekte sinnvoll, wenn das „echte“ Objekt
  • nicht deterministische Ergebnisse liefert (z. B. die aktuelle Uhrzeit oder die aktuelle Temperatur);
  • Schwierigkeiten bei der Vorbereitung oder während der Ausführung bereitet (z. B. beim Testen von Benutzeroberflächen);
  • Verhalten zeigen soll, das nur schwer auszulösen ist (z. B. einen Netzwerkfehler)
  • langsam ist (z. B. eine vollständige Datenbank, die vor dem Test erst initialisiert werden müsste);
  • noch nicht existiert (z. B. in größeren Software- oder Hardware-Entwicklungsprojekten);
  • Informationen und Methoden ausschließlich zu Testzwecken (und nicht für seine eigentliche Aufgabe) zur Verfügung stellen müsste.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat