Mockito – Der Spion der mich hasste

Die Bibliothek Mockito ist in der Test-Driven Software Entwicklung kaum noch wegzudenken. Die Möglichkeit komplexe Interaktionen mit APIs durch Mocks simulieren zu lassen, vereinfacht und beschleunigt die Implementierung eigener Anwendungen. Leider gibt es aber immer wieder kleine Stolperfallen in der Verwendung dieses ansonsten hervorragenden Framework.

Unit Tests mit dem Spring Boot WebClient

Der Spring Boot WebClient ist der reaktive, nicht blockierende Alternative zum RestTemplate. Obwohl der WebClient für die Anwendung in reaktiven Anwendungen entworfen wurde, kann er auch in klassischen Anwendungen das RestTemplate ersetzen. Insbesondere die moderne Implementierung und die Fluent API sind es, die den Software Entwickler die Entscheidung für den WebClient leicht machen. Obwohl die Fluent API des WebClient ein Segen für die Entwicklung ist, stellt sie einen Fluch für die Unit Tests da.

Mockito Matinée

Die Bibliothek Mockito ist für Java Entwickler in der Testerstellung ein unverzichtbarer Begleiter geworden. Leider kann bei der Verwendung von Mock Objekten so mancher Fehler passieren. Einige Anti-Pattern zum Testen mit Mocks wurde dazu im Beitrag Morden mit Mockito besprochen. Häufig werden aber auch nützliche Möglichkeiten von Mockito übersehen und dadurch die Tests unnötig aufgebläht.

The Art of Test

Das Testen der Software ist fast genauso wichtig, wie deren Implementierung. Bei der Implementierung von komplexen Systemen müssen Entwickler und Kunden prüfen können, ob das erstellte Werk auch allen Anforderungen entspricht und korrekt arbeitet. Aus diesem Grund werden beide Tätigkeiten beim Test-Driven-Development auch miteinander verbunden. Schwierigkeiten bereitet es häufig, welche Art von Test wann und wie verwendet werden sollte.

Testen von Spring Data Repositories

Beim Unit Testen eines Spring Boot Service der obiges FacilityRepository verwendet gibt es zwei nahe liegende Möglichkeiten. Entweder ein Spring Boot Test oder ein Mockito Test. Neben diesen gibt es aber mit
Spring Data Mock noch eine dritte interessante Alternative .