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 .

Das Geisterfahrer-Problem

“To be or not to be, that is the question” sprach Hamlet und legt damit allen Entwicklern die entscheidende Frage in den Mund “Ist das eine gute Idee oder mache ich hier Blödsinn?”. Die Frage ist leider oft nicht so einfach zu beantworten, es gibt zu viele Grautöne zwischen dem Schwarz und Weiß.

Mit Jackson an der Antwort sparen

Eine REST API mit Spring Boot ist schnell einsatzbereit, aber im Einsatz produziert die Schnittstelle häufig eine Menge unnötiger Daten, die vom Server zurückgeliefert werden.

REST heißt HATEOAS

Häufig existieren REST Schnittstellen, die Resourcen im Json Formate zurückliefern, die keinerlei Verknüpfung zu anderen Resourcen besitzen. Schlimmer noch, sie offenbaren interne Werte, damit der Client die Möglichkeit hat, andere Resourcen zu adressieren oder zu manipulieren. Häufig ist es dies der Schlüssel der Resourcen in der Datenbank.

Eigene PermissionEvaluator mit Spring Security

Spring Security bietet eine Fülle von Möglichkeiten, die Rechtekontrolle für REST Endpoints zu realisieren. Besonders interessant ist die Verwendung der Annotationen @PreAuthorize und @PostAuthorize.

Auf einsamen Pfaden mit Jackson oder wie man mit einem JsonPointer punkten kann

Java Bibliotheken

Immer seltener passiert es, dass ein Entwickler sich mit der Bibliothek Jackson beschäftigen muss. Viele Frameworks, wie etwa Jersey und Spring Boot verwenden die Bibliothek intern zum Mappen zwischen JSON und ihren POJOs. Dabei greifen sie auf die Möglichkeiten des Jackson ObjektMappers zu, unter Angabe einer Klasse und einer JSON Quelle, fertig gefüllte Instanzen dieser Klasse zu erzeugen.

Hin und Her mit MapStruct

Ein neues privates Projekt nimmt langsam Formen an und die ersten Features sind auch schon skizziert. In der Fachdomäne sind einige der Objekte und Rollen identifiziert, u.a. Person, Mitarbeiter, Leitung, Vertretung, Einrichtung, Firma und Geschäftsführung. Notwendig ist eine Persistenzschicht und das Backend soll vom Frontend durch eine REST Schnittstelle getrennt sein. Da sich das Entwickler-Team … 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.

Optionales einsammeln

Die Verwendung der Optional Klasse für API Rückgabewerte, macht viele Dinge bei der Verwendung einer API sehr viel einfacher. Beispiele dafür gab es ja schon in dem Beitrag Befreit die APIs von Nullen. Manches mal sorgt der Optional als Rückgabewert für Verdruss. Im folgenden Beispiel sollen alle Väter der Personen aus der Liste eingesammelt werden. … Weiterlesen

Optionals für Methodenketten

It is a mistake to look too far ahead. Only one link of the chain of destiny can be handled at a time. Winston Churchill Obwohl das Law Of Demeter den folgenden Aufruf zu Recht verteufelt, hat man es, in der holprigen Projektwelt, immer wieder mal mit solchen Verkettungen zu tun. In diesem Beispiel kennt … Weiterlesen