Werkzeuge

Werkzeuge liegen als eigenständige Software oder einbindbare Bibliotheken vor und kommen in der modernen Softwareentwicklung zum Einsatz.

Guice

Lesezeit: 9 MinutenGoogle Guice ist ein leichtgewichtiges Framework für Dependency Injection (DI) in Java und damit eine gute Wahl für ein Java-Programm, das ohne ein Framework wie Spring oder eine Java-EE-Implementierung entwickelt wird. Begrifflichkeiten und Zusammenhänge Guice provisioniert Abhängigkeiten in Felder und Parameter, die mit @Inject annotiert sind. DI wird durch einen Injector realisiert, der von einer […]

Guice Weiterlesen »

Mockito Teil 2

Lesezeit: 7 MinutenMockito ist eine Java-Bibliothek um Objekte zu mocken und für mich ein unverzichtbares Werkzeug beim Schreiben von Tests. Ein Mock ist eine Attrappe eines Objektes. Mockito erzeugt ein solches durch Ableitung. Eine Unit mit komplexen Abhängigkeiten lässt sich wunderbar isoliert testen, indem die Abhängigkeiten durch Mocks ersetzt werden. Da ich zu Mockito viel zu schreiben

Mockito Teil 2 Weiterlesen »

Mockito Teil 1

Lesezeit: 8 MinutenMockito ist eine Java-Bibliothek um Objekte zu mocken und für mich ein unverzichtbares Werkzeug beim Schreiben von Tests. Ein Mock ist eine Attrappe eines Objektes. Mockito erzeugt ein solches durch Ableitung. Eine Unit mit komplexen Abhängigkeiten lässt sich wunderbar isoliert testen, indem die Abhängigkeiten durch Mocks ersetzt werden. Da ich zu Mockito viel zu schreiben

Mockito Teil 1 Weiterlesen »

Semantic Release

Lesezeit: 10 MinutenSemantic Release ist ein Tool, mit dem sich Semantic Versioning automatisieren lässt. Für die Verwendung muss der Code der zu versionierenden Software in einem Git-Repository verwaltet und eine Continuous Integration Pipeline (CI Pipeline) zum Bauen der Software eingerichtet sein. Ich setze dafür GitLab ein. Semantic Versioning Der Begriff Semantic Versioning wurde von Tom Preston-Werner, einem

Semantic Release Weiterlesen »

Lombok

Lesezeit: 10 MinutenBoilerplate-Code ist ein ständiger Begleiter im Java-Umfeld. Die Mehrheit aller Getter und Setter tun genau das, was man erwartet: Den Wert einer Variablen eins zu eins zu setzen bzw. zurückzugeben. equals() und hashcode(), da wo sie benötigt werden, beziehen oftmals alle Felder einer Klasse mit ein. toString() liefert eine lesbare Aneinanderreihung der Werte aller Felder

Lombok Weiterlesen »

AssertJ

Lesezeit: 5 MinutenAssertJ ist eine Bibliothek, die Assertions über ein Fluent Interface anbietet. AssertJ kann über Maven oder Gradle in ein Projekt eingebunden und in Kombination mit JUnit verwendet werden. Vorteile gegenüber JUnit AssertJ bietet gegenüber JUnit ein Vielfaches an möglichen Assertions. Das verbessert die Lesbarkeit von Tests, da die getesten Ausdrücke kompakter und expliziter sind. Was

AssertJ Weiterlesen »

Testcontainers

Lesezeit: 5 MinutenTestcontainers ist eine mit JUnit integrierbare Bibliothek für Integrationstests, die über Maven oder Gradle in eine bestehende Testlandschaft eingebunden werden kann. Docker-Technologie Testcontainers setzt Docker-Container ein und erlaubt die Verwendung beliebiger Images. Entsprechend ist für die Ausführung von Tests mit Testcontainers eine Docker-Umgebung erforderlich. Je nach Umgebung erfordert das weitere Einstellungen. Auf der Webseite von

Testcontainers Weiterlesen »

ArchUnit

Lesezeit: 4 MinutenArchUnit ist eine Bibliothek für Java-Anwendungen, die Tests der Java-Anwendungsarchitektur ermöglicht. ArchUnit realisiert dies durch Bytecode-Analyse. ArchUnit-Assertions werden über eine Fluent API geschrieben. Beziehungen zwischen Klassen Folgende allgemeine Architektur-Vorgaben können beispielsweise leicht durch ArchUnit-Tests sichergestellt werden: Alle Klassen in einem Package A dürfen nur von Klassen in einem Package B referenziert werden Klassen mit einem

ArchUnit Weiterlesen »