Mock-Objekt

Was ist ein Mock-Objekt, wann lässt es sich nutzen und welche Arten gibt es?

Die Attrappe in der Softwareentwicklung

Ein Mock-Objekt ist ein Platzhalter in der Softwareentwicklung. Es ist eine Attrappe für noch nicht realisierte Objekte, die frühzeitige Modultests ermöglicht. Auch wenn der Begriff „to mock“ etwas vortäuschen bedeutet, so wird ein Mock-Objekt nicht in böser, sondern in guter Absicht verwendet. Beispielsweise lassen sich Mock-Objekte nutzen, wenn:

  • das gewünschte Objekt noch nicht zur Verfügung steht.
  • das reale Objekt nicht durch einen Test beschädigt werden soll – bspw. Daten dauerhaft löscht.
  • ein Verhalten nachgestellt werden soll, dass nur schwierig auszulösen ist.
  • die reale Lösung zu komplex und langsam für einen Test ist – bspw. eine vollständige Datenbank, die vor jedem Test initialisiert werden müsste.

Mock-Objekte – kurz auch als Mocks bezeichnet – können immer dann nützlich sein, wenn das isolierte Testen eines einzelnen Objekts schwierig, zeitaufwändig oder auch nur eingeschränkt bzw. überhaupt nicht möglich ist. So lassen sich Mock-Objekte verwenden, um ein gewünschtes Verhalten nachzustellen – bspw. könnte bei einem Methodenaufruf über eine Schnittstelle das Mock-Objekt Werte zurückliefern, die in einem Testfall vorab festgelegt wurden.

Mock-Objekt

Arten von Mock-Objekten

Es gibt verschiedene Arten von Mock-Objekten:

  • Ein „Dummy“ ist ein Objekt, das im Code weitergegeben, aber nicht verwendet wird. Es wird genutzt, um Parameter mit Werten zu befüllen.
  • Ein „Fake“ ist ein teilweise implementiertes Objekt, das nur eingeschränkt einsatzfähig ist. Beispiel: eine Datenbank die Daten nicht persistent speichert.
  • Ein Stub ist ein Objekt, das unabhängig von einer Eingabe / Input immer dieselbe Antwort / Output liefert.
  • Ein „Spy“ ist ein Objekt, das Aufrufe und Werte protokolliert und gegebenenfalls ausliefert.
  • Ein „Shim“ bzw. ein „Shiv“ ist ein Objekt, das Anfragen an eine Schnittstelle abfängt und selbst antwortet.

Die Meinungen gehen auseinander bei der Frage, ob ein Mock-Objekt auch bei einem Integrationstest nützlich sein kann. Idealerweise testet ein Integrationstest ein gesamtes System auf funktionale Vollständigkeit und Fehlerfreiheit. In der Praxis kann es jedoch immer wieder vorkommen, dass nicht alle Elemente rechtzeitig fertiggestellt wurden – hier könnte der Einsatz von Mocks Sinn ergeben.

Was macht t2informatik?

t2informatik - Wir entwickeln Software für großartige Unternehmen

Hinweise:

Hier finden Sie weitere Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Was ist ein Bugfix?

Was ist ein Bugfix?

Wissen kompakt: Was ist ein Update?

Was ist ein Update?