Rezension: Professional Test Driven Development with C# von James Bender und Jeff McWherter

Bereits vor einiger Zeit bin ich über eine Podcast-Episode von Deep Fried Bytes (Episode 73: Developing Real World Applications with TDD with James Bender and Jeff McWherter) auf das Buch Professional Test Driven Development with C#: Developing Real World Applications with TDD* von James Bender und Jeff McWherter aufmerksam geworden und habe es mir gleich für den Kindle* zugelegt.

Und da ich hier im Blog nicht nur „Werbung“ für Java machen will, stelle ich das Buch heute als tolle Alternative zu Pragmatic Unit Testing in Java 8 with JUnit für C# vor 🙂

James Bender - Professional Test Driven Development with C# (Affiliate)*

Verschiedene Frameworks

Die Autoren liefern mit diesem Buch einen Rundumschlag zur testgetriebenen Softwareentwicklung mit C#. Zusätzlich zu den theoretischen Hintergründen von TDD und der agilen Softwareentwicklung werden anhand eines konkreten Beispielprojekts verschiedenste Frameworks (NUnit für die Unit-Tests, NBehave für Business Driven Development, Ninject für Dependency Injection, Moq für Stubs und Mocks usw.) mit Schritt-für-Schritt-Anleitungen eingeführt. Der dabei entstehende Code mag auf den ersten Blick recht umfangreich sein (allein mehrere Klassen und Methoden für den ersten Test), aber das Design ist praxistauglich und leicht erweiterbar.

Prinzipien und Praktiken

Das Buch ist gespickt mit allerlei zusätzlichen Einführungen und Tipps rund um die agile Softwareentwicklung. Seien es die SOLID-Prinzipien, Refactoring, User Stories oder Code Smells: das Buch ist voll von einsteigertauglichen Erklärungen und Beispielen. Sehr gut gefallen hat mir der Teil über die Strukturierung der C#-Projekte und ihrer Abhängigkeiten in Visual Studio. Hilfreich sind auch die zusätzlichen Kapitel über das Testen von WCF– und WPF-Anwendungen. Hierbei werden sofort konkrete Beispiele mit Bezug zum Beispielprojekt gegeben, die sich direkt in der Praxis anwenden lassen. Dabei wird darauf geachtet, dass in den Tests von der Infrastruktur (Services bzw. GUI) abstrahiert wird und Stubs bzw. Mocks für schnelle und wiederholbare Tests zum Einsatz kommen.

Fazit

Ich empfehle dieses Buch definitiv meinen Auszubildenden und Studenten als Literatur zum Einstieg in das Thema Unit-Tests mit C#! Bislang habe ich kein besseres Buch dafür gefunden.

Mit knapp 300 Seiten ist es schnell gelesen und bietet dafür einen wirklich umfangreichen Inhalt. Vom Einstieg ins Testen, über professionelles Vorgehen bei der Entwicklung bis hin zu tiefergehenden Themen wie Mocking und Dependency Injection ist alles dabei.

Auch wenn es bereits ein wenig älter ist (erschienen 2011), ist der Inhalt immer noch praxisrelevant. Die genannten allgemeinen Prinzipien werden aber wohl auch nicht so schnell an Bedeutung verlieren. Und wenn sich in den verwendeten Frameworks etwas geändert hat (was natürlich durchaus sein kann), wird man das als Entwickler wohl mit Hilfe des Internets hinbekommen 😉


Kennst du das Buch? Wie bewertest du es? Hast du weitere Literaturempfehlungen im Bereich TDD, C# oder sogar beiden zugleich?

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