Mock Objekt

R 2.0.0

Was ist ein Mock Objekt?

Was ist ein Mock Objekt?

Ein Mock-Objekt ist ein Platzhalter in der Softwareentwicklung für noch nicht realisierte Objekte, der frühzeitige Komponenten-/Integrationstests ermöglicht. Mocks simulieren das Verhalten der realen Objekte.

Beispiele für die Nutzung von Mock Objekten

Mock Objekte lassen sich verwenden, wenn:

  • das gewünschte Objekt noch nicht zur Verfügung steht,

  • das reale Objekt nicht durch einen Test beschädigt werden soll – z.B. wenn Daten dauerhaft gelöscht werden,

  • ein Verhalten nachgestellt werden soll, das nur schwierig auszulösen ist,

  • die reale Lösung zu komplex und langsam für einen Test ist – z.B. eine vollständige Datenbank, die vor jedem Test initialisiert werden müsste.

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.

ALT MISSING
Abb. 1: Platzhaltertypen

Praktischer Einsatz von Mock Objekten

Der praktische Einsatz von Mock-Objekten muss immer von folgenden Voraussetzungen getragen sein:

  • ein Mock-Objekt muss mit seinem Original-Objekt übereinstimmen und keine weiteren Aktivitäten bzw. Abhängigkeiten von einem weiteren Original-Objekt haben

  • das Mock-Objekt wird nur in der Testphase eingesetzt und muss anschließend auf einfachem Wege wieder neutralisiert werden können.

Quellen

  • Testen in Scrum-Projekten, 1-Auflage; T.Linz; 2013; S.76-77

  • t2informatik GmbH, Was ist ein Mock Objekt?, abgerufen am 12.02.2024