Pragmatic Unit Testing in Java 8 with JUnit (Buchclub) – Anwendungsentwickler-Podcast #98
Das äußerst empfehlenswerte Buch „Pragmatic Unit Testing in Java 8
with JUnit“ wird im Buchclub in der achtundneunzigsten Episode des
Anwendungsentwickler-Podcasts besprochen. Inhalt Das Buch ist meine
absolute Empfehlung für jeden Azubi.
35 Minuten
Podcast
Podcaster
Beschreibung
vor 8 Jahren
Das äußerst empfehlenswerte Buch „Pragmatic Unit Testing in Java
8 with JUnit“ wird im Buchclub in der achtundneunzigsten Episode
des Anwendungsentwickler-Podcasts besprochen.
Inhalt
Das Buch ist meine absolute Empfehlung für jeden Azubi. Meine
eigenen Azubis lesen es schon direkt im 1. Ausbildungsjahr, kurz
nachdem sie ihre ersten Java-Aufgaben gelöst haben. Für mich
gehört Unit-Testing einfach mit zur Ausbildung dazu und man kann
gar nicht früh genug damit anfangen.
Bislang waren die Rückmeldungen zum Buch sehr positiv. Alle
Azubis haben es gut verstanden und konnten die Inhalte auch
direkt in die Praxis umsetzen. Wir haben uns für das
Durcharbeiten meistens ca. 2 Wochen Zeit genommen. Das Buch ist
sehr verständlich geschrieben, enthält tolle Beispiele – und zwar
endlich einmal auch in Java 8 – und ist dank des geringen Umfangs
von knapp 200 Seiten sehr schnell zu lesen.
Die Bücher aus dem Hause Pragmatic Programmers kann man
eigentlich ausnahmslos empfehlen. Sie haben u.a. auch das
„Standardwerk“ zum Einstieg in Ruby on Rails* oder POODR*
veröffentlicht. Pragmatic Unit Testing in Java 8 with JUnit*
reiht sich – meiner Meinung nach – hier perfekt ein.
Grundlagen
Das Buch führt auf knapp 50 Seiten zunächst in das Thema
Unit-Tests ein und erklärt die Funktionsweise von JUnit. Schritt
für Schritt wird ein lauffähiger Unit-Test erstellt und dabei
werden auch die neuen Entwicklungen in JUnit berücksichtigt –
also keine alten test*-Methoden mehr, sondern vernünftige
Annotations. Dabei wird auch gleich das berühmte AAA zum Aufbau
der Test-Methoden erläutert und @Before und @After eingeführt.
Ich kann mir in Zukunft meine eigenen Erklärungen sparen und
lasse meine Azubis diese ersten 50 Seiten lesen. Danach sollten
sie alle wichtigen Begriffe und Ideen zum Thema Unit-Tests und
Junit kennen
Das Buch startet mit einem schönen Überblick, warum man überhaupt
testen sollte. Außerdem enthält es
Schritt-für-Schritt-Anleitungen, um Unit-Test mit Eclipse zu
erstellen. Im Anhang wird aber auch auf IntelliJ und Netbeans
eingegangen, sodass man unabhängig von der konkreten IDE
mitmachen kann. Die zu testenden Codebeispiele werden ebenfalls
ausführlich erläutert. Es können also auch absolute Anfänger
mitarbeiten.
Als nächstes werden Assertions im Detail vorgestellt. Auch die
Hamcrest-Matcher gehören dazu, um sprechende Tests zu schreiben,
und die unterschiedlichen Möglichkeiten z.B. mittels Annotationen
werden vorgestellt.
Akronyme
Der nächste Teil (ca. 40 Seiten) ist dann ganz den „Mnemonics“
gewidmet. Das hilft in der Praxis, ist aber nicht
prüfungsrelevant.
FIRST: fast, isolated, repeatable, self-validating, timely.
Right-BICEP: right, boundary conditions, inverse
relationships, cross-checking, error conditions, performance.
CORRECT: conformance, ordering, range, reference, existence,
cardinality, time.
Anhand dieser einprägsamen Akronyme geht Jeff Langr die
Eigenschaften guter Unit-Tests durch und bringt den Lesern damit
gleich bei, worauf sie bei der Programmierung ihrer Tests achten
sollten, um keine falsche Sicherheit zu erreichen.
Design
Im dritten Teil (ca. 60 Seiten) widmet sich das Buch den „großen“
Themen Refactoring und Mock-Objekte. Es wird intensiv
geschildert, warum Refactoring wichtig ist und warum Unit-Tests
unabdingbare Voraussetzung für das Refactoring des eigenen Codes
sind. Außerdem wird erklärt, wofür man Mock-Objekte braucht und
wann man sie besser nicht einsetzen sollte.
Das Kapitel wird abgerundet mit einer stimmigen Liste von Test
Smells, die auf ein nötiges Refactoring des Test-Codes hindeuten.
Somit wird dem Leser gleich an die Hand gegeben, dass auch der
Test-Code den gleichen Qualitätskriterien genügen sollte wie der
Produktivcode. Sogar ein Kurzausflug in die SOLID-Prinzipien ist
enthalten.
Als nächstes werden Mock-Objekte vorgestellt und
die Unterschiede zwischen Stubs und Mocks erläutert. Der Teil
schließt mit einem Kapitel zum Refactoring des Test-Codes. Das
ist ein Vorgang, der zu jedem testgetriebenen Entwicklungsprozess
gehören sollte.
Big Picture
Der letzte Teil des Buchs (ca. 50 Seiten) geht dann konkret auf
Test Driven Development ein und auch auf das Testen schwieriger
Probleme wie zum Beispiel Multithreading und Datenbanken. Ganz
zum Schluss werden dann auch noch weitere wichtige Begriffe
erläutert wie z.B. Continuous Integration und Code Coverage. Es
ist also auch etwas für fortgeschrittene Tester dabei.
Fazit
Ich konnte Pragmatic Unit Testing in Java 8 with JUnit* gut von
vorn bis hinten durchlesen. Es ist durchgängig interessant
geschrieben und enthält viele lehrreiche Tipps. Es ist daher
meine Empfehlung für alle Azubis (oder auch Ausbilder ), die sich
dem Thema Unit-Tests widmen möchten (oder müssen). Es gehört für
mich ab sofort zur Standardbibliothek für meine Azubis.
Tipp für Ausbilder
Ich würde neuen Auszubildenden das Buch nach ca. drei Monaten
Einarbeitung zur Lektüre empfehlen. Dann sollten sie bereits
einige (negative) Erfahrungen mit der Programmierung gemacht
haben und schnell einsehen, warum automatische Tests so wichtig
sind. Die Java-Vorkenntnisse sollten dann auch ausreichen, um das
Buch ohne Probleme zu verstehen.
Literaturempfehlungen
Logisch, oder?
*
Die perfekte Ergänzung für einen noch tieferen Einstieg in das
Testen deiner Software:
*
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
JUnit
Unit Testing with JUnit – Tutorial
JUnit Cheat Sheet
Weitere Episoden
5 Minuten
vor 4 Wochen
11 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
10 Minuten
vor 5 Monaten
In Podcasts werben
Kommentare (0)