Prinzipien, Praktiken und Muster des Modultests
320 Seiten
German
PDF
4.5

Prinzipien, Praktiken und Muster des Modultests

Prinzipien, Praktiken und Muster des Modultests

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Unit Testing Principles, Practices, and Patterns“ (in deutscher Übersetzung – „Prinzipien, Praktiken und Muster des Modultests“) von Vladimir Khorikov ist nicht nur ein weiteres Lehrbuch über Unit-Tests. Es ist eine tiefgründige, strukturierte Anleitung, die nicht nur lehrt, wie man Tests schreibt, sondern auch warum manche Ansätze funktionieren und andere zu fragilen und nutzlosen Überprüfungen führen. Obwohl alle Beispiele in C# (.NET) geschrieben sind, sind die beschriebenen Konzepte, Prinzipien und Antimuster universell und auf jede objektorientierte Sprache anwendbar, einschließlich Python.

Worum geht es in diesem Buch

Das Buch erschien 2020 und wurde sofort zum Bestseller in seiner Nische. Es besteht aus 11 Kapiteln, die in vier Teile unterteilt sind. Der Autor beginnt mit den Grundlagen: Was ein Unit-Test eigentlich ist, wie er sich von einem Integrationstest unterscheidet und warum die „richtige“ Definition von entscheidender Bedeutung ist. Dann geht er über zur Auswahl der Teststrategie, zur Arbeit mit Abhängigkeiten (Stubs, Mocks, Spione) und, am wichtigsten, zum Entwurf der Testarchitektur. Besonderes Augenmerk wird auf das Refactoring von Tests und die Integration von Tests in den Entwicklungsprozess gelegt.

Für wen ist dieses Buch

Dieses Buch richtet sich an Entwickler, die bereits grundlegende Erfahrung im Schreiben von Tests haben, aber das Gefühl haben, dass ihre Tests fragil, zu vielschichtig sind oder nicht den erwarteten Nutzen bringen. Es wird nützlich sein für:

  • Entwickler in C#, Java, Python, JavaScript und anderen Sprachen, die mit OOP vertraut sind;
  • Teamleiter und Architekten, die eine Kultur des qualitativ hochwertigen Testens im Team etablieren möchten;
  • Programmierer, die vom „Testen um der Abdeckung willen“ zum „Testen um der Sicherheit willen“ übergehen.

Was der Leser lernen wird

Nach der Lektüre dieses Buches werden Sie in der Lage sein:

  • Unit-Tests und Integrationstests klar zu unterscheiden – und zu verstehen, wann welcher Typ verwendet werden sollte;
  • „Fragile“ Tests zu vermeiden – Tests, die bei jeder Code-Refactoring kaputt gehen;
  • Die richtige Wahl zwischen Mocks, Stubs und Spionen zu treffen – und zu verstehen, warum übermäßiger Einsatz von Mocks ein Antimuster ist;
  • Testbaren Code zu entwerfen – Dependency Injection und funktionale Architektur zur Vereinfachung des Testens zu nutzen;
  • Bestehende Tests zu refaktorieren – keine Angst davor zu haben, Tests umzuschreiben, wenn sich der Code ändert;
  • Eine Testhierarchie aufzubauen – von schnellen Unit-Tests bis hin zu langsamen, aber wertvollen Integrationstests;
  • TDD (Test-Driven Development) bewusst anzuwenden – nicht als Dogma, sondern als Werkzeug.

Stärken des Buches

Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Vladimir Khorikov listet nicht nur Regeln auf, sondern erklärt sie anhand realer Beispiele und zeigt „vorher“ und „nachher“. Er analysiert konsequent Antimuster wie „Testen über private Methoden“, „übermäßige Verwendung von Mocks“ oder „Testen von Implementierungsdetails“. Das Buch ist in einer lebendigen, verständlichen Sprache geschrieben, und die Beispiele in C# sind auch für diejenigen leicht lesbar, die die Sprache nicht tiefgehend kennen. Besonders hervorzuheben ist das Kapitel über das Refactoring von Tests – ein seltenes und sehr wertvolles Thema, dem normalerweise wenig Aufmerksamkeit geschenkt wird.

Empfehlung

Ich empfehle dieses Buch nachdrücklich allen, die Tests schreiben und dies sinnvoll tun möchten. Wenn Sie jemals die Situation erlebt haben, dass die Änderung einer einzigen Codezeile Dutzende von Tests zerstört hat, oder wenn Tests bestanden wurden, aber Fehler dennoch in der Produktion auftauchten – dann ist dieses Buch für Sie. Es geht nicht um Werkzeuge (obwohl es xUnit, Moq und NSubstitute erwähnt), sondern um Denkweise. Darum, das Testen nicht als Last, sondern als zuverlässiges Fundament Ihres Projekts zu gestalten.

Für Leser von PythonLib, die mit Python arbeiten, wird das Buch insofern nützlich sein, als alle Prinzipien (Isolation, Fixture, Parametrisierung, Wahl zwischen Mock und Stub) direkt auf pytest und unittest übertragbar sind. Einzige

Empfehlungen