Posts

Es werden Posts vom Dezember, 2020 angezeigt.

Clean Code in JUnit 5 und Spring Boot Tests

Bild
Clean Code ist auch im Unit-Test Pflicht. Hier schreibe ich eine saubere JUnit 5 Testklasse und übersetze sie anschließend in einen Spring Boot Test. Außerdem zeige ich ein paar JUnit 5 Features zum Parametrisieren von Tests und zum Testen von Exceptions. (JUnit 5 Logo 😮) Clean Code im JUnit Test Das Schreiben von möglichst einfachem und gut wartbaren Code (Clean Code) ist für viele Entwickler selbstverständlich. Die Unit-Tests zu diesem Code haben leider häufig eine schlechtere Code-Qualität. Dabei sollte es eigentlich bekannt sein, dass auch Unit-Tests leicht verständlichen und gut wartbaren Code benötigen, insbesondere wenn sie regelmäßig und automatisiert ausgeführt werden. In einem der bekanntesten Bücher zum Thema Clean Code von Robert Martin , gibt es deshalb ein eigenes Kapitel zu JUnit. Ich zeige euch nun einen JUnit Test und erkläre dann, welche Clean Code Prinzipien ich dabei angewendet habe. Getestet wird der InMemoryItemStore , den ich in einem früheren Blog-Post kernkonz

Clean Code mit dem Linux sed-Befehl

Bild
Clean Code ist ein wichtiges Thema, das manchmal aufwändig und langweilig sein kann. So musste ich vor kurzem in circa 100 Klassen überflüssige Annotationen löschen 😒 Statt Eclipse nutzte ich die Linux-Shell und sed, um alle Dateien mit einem Befehl aufzuräumen. Wie das genau geht, zeige ich euch hier. Das Problem bzw. der dreckige Code Die Modell-Klassen unserer Anwendung wurden früher zum Parsen von JSON in Java-Objekte und zum Schreiben per JPA in eine relationale Datenbank verwendet. Nach einem Redesign werden die Modell-Klassen nur noch zum Parsen von JSON Texten verwendet, so wie ich es z.B. hier zeige  rest-json-apis-in-java-leicht-gemacht.html . Im Zuge des Redesigns wurde leider vergessen die nun ungenutzten JPA Annotationen in den Modell-Klassen zu entfernen. Konkret sehen alle Klassen ungefähr so aus: import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated;