Hamcrest Matcher Generator (Teil 2)

Im vorherigen Beitrag wurde die grobe Struktur eines Generators für Hamcrest Matcher vorgestellt. In diesem Beitrag vervollständigen wir den Entwurf, in dem die losen Enden verknüpft und die tatsächlichen Matcher-Klassen generiert werden.

Hamcrest Matcher Generator

Generatorhalle

Wer lieber mit Hamcrest arbeitet, muss auf solch ein Feature nicht zwangsläufig verzichten. Wie ein eigener Assertion Generator für Hamcrest erstellt werden kann, wird in diesem und weiteren Beiträgen erläutert.

Zufallswerte in JUnit 5

Normalerweise möchte jeder Entwickler den Zufall aus seinen Unit Tests verbannen, Für eine verlässliche Eingabe wird eine vorhersehbare Ausgabe gewünscht. Aber wer kennt nicht die vielen hundert Unit Tests, die alle den Benutzer Max Mustermann verwenden, der 42 Jahre alt ist. In vielen Fällen ist dies kein Problem, manchmal ändert den Entwickler auch das Alter … Read more

Massentest mit JUnit 5

Immer wieder kommt es vor, dass Softwareentwickler ihren alten Quellcode bearbeiten müssen. Dabei ist der Entwickler mit dem Werk der letzten sechs Wochen immer recht zufrieden. Dinge, die noch nicht älter als sechs Monate sind, werden mit einer oberlehrerhaften Skepsis betrachtet und im Kopf werden eifrig Änderungen notiert, die das frühere Ich vergessen hat. Was älter ist als sechs Monate, wird behandelt, als wäre es von fremder Hand erstellt. Zum einen, weil viele Codeänderungen schon längst vergessen sind, oder weil man nicht akzeptieren will, diesen Schund selbst geschrieben zu haben.

Assertions mit Optionals

Optionals sind ein wahrer Segen in den Java API. Sie reduzieren eine Menge Boiler-Plate Code bei der Behandlung von fehlenden Rückgabewerten auf ein Minimum und verbessern die Semantik ungemein. In Legacy Code findet sich noch häufig folgende Behandlung. Sehr viel einfacher und lesbarer ist die Verwendung eines Optionals als Ruckgabewert. Neben der kompakteren Form hat … Read more

Morden mit Mockito

Einer der wichtigsten Frameworks, um Unit Tests in Java zu schreiben, ist wohl Mockito. Kaum ein Projekt kommt ohne die Möglichkeit aus, Abhängigkeiten in den Testmethoden durch Mock Objekte zu ersetzen.

Leider ist jedes hilfreiche Framework in der Software Entwicklung auch eine Pandora Büchse

Stammbaumprüfung mit BPMN

Häufig bleiben interessante Erweiterungen für Anwendungen liegen, weil der Aufwand für die Ablauflogik zu hoch erscheint. Eine solche Erweiterung ist die Automatisierte Stammbaumfreigabe für den Ancestor Rest Service aus dem Beitrag REST in Peace.

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 .

Wir testen, was wir haben und nicht was wir brauchen

Das Zauberwort Code Coverage führt in vielen Projekten zu grotesken Stilblüten bei Unit Tests.
Häufig ist es dem Umstand zu verdanken, nachträglich eine Codebasis mit Tests zu versehen. Entweder, weil die QA Richtlinien es so vorschreiben oder die Entwickler nicht die Vorteile des Test Driven Developments (TDD) verinnerlicht haben.

Unit Test Contracts mit Default Methoden

Lange Zeit habe ich mir das JUnit 5 Feature Test Interfaces nicht angeschaut, vermutlich weil mir default Methoden in Interfaces noch immer ein wenig suspekt sind. Langsam freunde ich mir mit diesen eigenartigen Schimären an und freue mich, endlich ein schönes Beispiel für Test Interfaces gefunden zu haben.