Mockito
Javas dominierendes Mocking-Framework, 2008 von Szczepan Faber geschaffen. Ersetzt Abhängigkeiten durch Attrappen, damit eine Klasse isoliert von Datenbank, Netzwerk und Uhr getestet werden kann.
Das API ist fast bis zur Selbstparodie lesbar: when(repo.findById(1)).thenReturn(user) steuert die Antwort, verify(mailer).send(any()) prüft, ob etwas aufgerufen wurde. Der Unterschied zum Vorgänger EasyMock war, dass Mockito keine im Voraus deklarierten Erwartungen verlangt — man führt den Test aus und verifiziert danach, was deutlich lesbarere Tests ergibt. Unterstützt Spies (teilweise echte Objekte), Argument Captors und seit Version 3.4 auch statische Methoden, wofür zuvor PowerMock nötig war. Die häufigste Kritik: umfangreiches Mocking macht Tests zu einem Spiegel der Implementierung — ändert sich, wie die Klasse intern arbeitet, schlagen die Tests fehl, obwohl das Verhalten unverändert ist.