Abbildung - Mockito Framework

Bei Mockito handelt es sich um eine freie Programmbibliothek (steht unter MIT-Lizenz) bzw. ein Mocking-Framework für die Programmiersprache Java, das die einfache Erstellung von Mock-Objekten im Rahmen von Unit-Tests ermöglicht.

Es bietet also die Möglichkeit, das Verhalten von noch nicht implementierten Programmteilen rudimentär zu simulieren und damit das zu testende System, trotz fehlender Programmteile, zu testen.

Geschichte

Der Entwickler Szczepan Faber rief das Mockito-Projekt im Jahre 2007 in Leben, um die Defizite vorhandener Mocking-Frameworks auszugleichen. Die Basis für das Mockito-Framework stellte dabei das vorhandene Framework EasyMock dar, das von Faber erweitert und umgestaltet wurde.

Grundbegriffe

Mocks und andere Fake-Objects

Siehe hierzu den Artikel Mock – Mock-Objects

Mocking Frameworks

Es gibt zahlreiche Mocking Frameworks für Java. Mockito ist hierbei eines der populärsten, neben weiteren wie z.B. EasyMock oder JMock.

Abriss – Mockito Framework

Mockito ermöglicht uns eine sog. Dependency Injection der Collaborator Objekte für das Object under Test vorzunehmen. D.h. im weitesten Sinne, es werden Mocks der Collaborator Objekte automatisch in unser Object under Test eingespeist, was über die Mockito Annotation @InjectMocks erreicht wird.

Nach der Injection der Collaborator Mocks, lässt sich deren Verhalten, im Falle eines Aufrufs durch unser System under Test, konfigurieren.

Mockito kennt drei Formen der Dependency Injection:

„Constructor Injection“, „Setter Injection“ und „Field Injection“. Diese drei Injection Strategien werden im Falle einer Dependency Injection nacheinander versucht. Weitere Details hierzu finden Sie in der Java Doku (Javadoc, 2022).

Damit ist eine zentrale Anforderung, nämlich die Isolation des System under Test von allen Collaborator Klassen, erfüllt.

Verwandte Themen:

Links:

Mockito Projektseite: https://site.mockito.org/

Literatur und Quellenverzeichnis:

Javadoc, (2022) – https://javadoc.io/static/org.mockito/mockito-core/4.8.1/org/mockito/InjectMocks.html