Buchclub zu Pragmatic Unit Testing in Java 8 with JUnit

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. 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.

Grundlagen

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.

Der übliche Ablauf bei Tests und insbesondere in JUnit wird vorgestellt. @Before und @After werden erläutert.

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.

Danach geht es um die Organisation der Tests. Es geht mit dem Klassiker AAA los.

Akronyme

Der nächste Teil 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.

Design

Im dritten Teil geht es um das Design von größeren Anwendungen. Eine kurze Einführung ins Refactoring gehört genauso dazu wie das Single Responsibility Principle. 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 geht dann konkret auf Test-Driven-Ddevelopment 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.

Literaturempfehlungen

Logisch, oder? 🙂

Jeff Langr - Pragmatic Unit Testing in Java 8 with JUnit (Affiliate)*

Die perfekte Ergänzung für einen noch tieferen Einstieg in das Testen deiner Software:

Growing Object-Oriented Software, Guided by Tests - Amazon (Affiliate)*

Links

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax