Kategorie: Test

Repeating Annotations

Lange war es in Java nicht möglich eine Annotation an einer bestimmten Position mehrfach anzugeben. Dieses Manko wurde erst in der Java Version 8 durch Repeating Annotationsbehoben.

Im Beitrag Hamcrest Matcher Generator wurde die @Hamcrest Annotation vorgestellt. Diese Annotation gestattet es, für eine angegebene Klasse, Hamcrest Matcher automatisch zu erstellen.
Leider kann in der initialen Version des Generators immer nur eine @HamcrestAnnotation an einer Klasse stehen.

Weiterlesen

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.

Weiterlesen
Generatorhalle

Hamcrest Matcher Generator

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.

Weiterlesen

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 von Max, dann ist er 16 Jahre alt, weil

Weiterlesen

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

Weiterlesen

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 auch die Semantik der Methode gewonnen. Der Rückgabewert Optional<Output>

Weiterlesen

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

Weiterlesen

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.

Weiterlesen

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 .

Weiterlesen

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.

Weiterlesen