The Art of Unit Testing

Deutsche Ausgabe

Robert C. Martin, Roy Osherove and Michael Feathers

Cite this publication as

Robert C. Martin, Roy Osherove, Michael Feathers, The Art of Unit Testing (2015), mitp-Verlag, Frechen, ISBN: 9783826687211

2776
accesses
73
quotes

Description / Abstract

Unit Testing: Grundlagen
Test-Hierarchien und -Organisation
Mit Legacy Code arbeiten

Das einzige deutsche Buch zu Unit Testing mit .NET

Vieles wäre besser, wenn Software fehlerfrei wäre. Leider tendiert sie dazu, Fehler zu beinhalten. Daher wird Software normalerweise während der Entwicklung getestet; jedoch kann dies gerade bei großen Projekten ein mühsames Unterfangen sein. Unit Tests sind Programme, die überprüfen, ob die von den Entwicklern geschriebenen Komponenten so arbeiten, wie diese es beabsichtigen.
Dieses Buch führt den Leser Schritt für Schritt von einfachen Tests bis hin zu Tests, mit denen sich der Code umfangreicher Softwareprojekte überprüfen und analysieren lässt. Der Leser lernt darüber hinaus, veralteten Code zu testen und der Autor diskutiert auch Tools, mit denen sich Datenbanken und weitere Technologien testen lassen.
Das Buch ist für .NET-Entwickler geschrieben, aber Entwickler anderer Sprachen können ebenso von den Inhalten profitieren.

Description

Roy Osherove berät und trainiert weltweit Entwicklungsteams zum Unit Testing und Test-Driven Development. Darüber hinaus ist er Sprecher bei zahlreichen internationalen Konferenzen.

Table of content

  • Cover
  • Titel
  • Impressum
  • Inhaltsverzeichnis
  • Vorwort zur zweiten Auflage
  • Vorwort zur ersten Auflage
  • Einleitung
  • Kapitel 1: Die Grundlagen des Unit Testings
  • 1.1 Unit Testing – Schritt für Schritt definiert
  • 1.2 Eigenschaften eines »guten« Unit Tests
  • 1.3 Integrationstests
  • 1.4 Was Unit Tests »gut« macht
  • 1.5 Ein einfaches Unit-Test-Beispiel
  • 1.6 Testgetriebene Entwicklung
  • 1.7 Die drei Schlüsselqualifikationen für erfolgreiches TDD
  • 1.8 Zusammenfassung
  • Kapitel 2: Ein erster Unit Test
  • 2.1 Frameworks für das Unit Testing
  • 2.2 Das LogAn-Projekt wird vorgestellt
  • 2.3 Die ersten Schritte mit NUnit
  • 2.4 Sie schreiben Ihren ersten Test
  • 2.5 Refactoring zu parametrisierten Tests
  • 2.6 Weitere NUnit-Attribute
  • 2.7 Das Testen auf Zustandsänderungen des Systems statt auf Rückgabewerte
  • 2.8 Zusammenfassung
  • Kapitel 3: Die Verwendung von Stubs, um Abhängigkeiten aufzulösen
  • 3.1 Die Stubs werden vorgestellt
  • 3.2 Die Identifizierung einer Dateisystemabhängigkeit in LogAn
  • 3.3 Die Entscheidung, wie LogAnalyzer am einfachsten getestet werden kann
  • 3.4 Design-Refactoring zur Verbesserung der Testbarkeit
  • 3.5 Variationen der Refactoring-Technik
  • 3.6 Die Überwindung des Kapselungsproblems
  • 3.7 Zusammenfassung
  • Kapitel 4: Interaction Testing mit Mock-Objekten
  • 4.1 Wertbasiertes Testen versus zustandsbasiertes Testen versus Testen versus Interaction Testing
  • 4.2 Der Unterschied zwischen Mocks und Stubs
  • 4.3 Ein einfaches manuelles Mock-Beispiel
  • 4.4 Die gemeinsame Verwendung von Mock und Stub
  • 4.5 Ein Mock pro Test
  • 4.6 Fake-Ketten: Stubs, die Mocks oder andere Stubs erzeugen
  • 4.7 Die Probleme mit handgeschriebenen Mocks und Stubs
  • 4.8 Zusammenfassung
  • Kapitel 5: Isolation-(Mock-Objekt-)Frameworks
  • 5.1 Warum überhaupt Isolation-Frameworks?
  • 5.2 Das dynamische Erzeugen eines Fake-Objekts
  • 5.3 Die Simulation von Fake-Werten
  • 5.4 Das Testen auf ereignisbezogene Aktivitäten
  • 5.5 Die aktuellen Isolation-Frameworks für .NET
  • 5.6 Die Vorteile und Fallstricke von Isolation-Frameworks
  • 5.7 Zusammenfassung
  • Kapitel 6: Wir tauchen tiefer ein in die Isolation-Frameworks
  • 6.1 Eingeschränkte und uneingeschränkte Frameworks
  • 6.2 Werte guter Isolation-Frameworks
  • 6.3 Eigenschaften, die Zukunftssicherheit und Benutzerfreundlichkeit unterstützen
  • 6.4 Isolation-Framework-Design-Antimuster
  • 6.5 Zusammenfassung
  • Kapitel 7: Testhierarchie und Organisation
  • 7.1 Automatisierte Builds, die automatisierte Tests laufen lassen
  • 7.2 Testentwürfe, die auf Geschwindigkeit und Typ basieren
  • 7.3 Stellen Sie sicher, dass die Tests zu Ihrer Quellcodekontrolle gehören
  • 7.4 Das Abbilden der Testklassen auf den zu testenden Code
  • 7.5 Querschnittsbelang-Injektion
  • 7.6 Der Bau einer Test-API für Ihre Applikation
  • 7.7 Zusammenfassung
  • Kapitel 8: Die Säulen guter Unit Tests
  • 8.1 Das Schreiben vertrauenswürdiger Tests
  • 8.2 Das Schreiben wartbarer Tests
  • 8.3 Das Schreiben lesbarer Tests
  • 8.4 Zusammenfassung
  • Kapitel 9: Die Integration von Unit Tests in die Organisation
  • 9.1 Schritte, um ein Agent des Wandels zu werden
  • 9.2 Wege zum Erfolg
  • 9.3 Wege zum Misserfolg
  • 9.4 Einflussfaktoren
  • 9.5 Schwierige Fragen und Antworten
  • 9.6 Zusammenfassung
  • Kapitel 10: Der Umgang mit Legacy-Code
  • 10.1 Wo soll man mit dem Einbauen der Tests beginnen?
  • 10.2 Bestimmen Sie eine Auswahlstrategie
  • 10.3 Schreiben Sie Integrationstests, bevor Sie mit dem Refactoring beginnen
  • 10.4 Wichtige Tools für das Unit Testing von Legacy-Code
  • 10.5 Zusammenfassung
  • Kapitel 11: Design und Testbarkeit
  • 11.1 Warum sollte ich mir Gedanken um die Testbarkeit in meinem Design machen?
  • 11.2 Designziele für die Testbarkeit
  • 11.3 Vor- und Nachteile des Designs zum Zwecke der Testbarkeit
  • 11.4 Alternativen des Designs zum Zwecke der Testbarkeit
  • 11.5 Beispiel eines schwer zu testenden Designs
  • 11.6 Zusammenfassung
  • 11.7 Zusätzliche Ressourcen
  • Anhang A: Tools und Frameworks
  • A.1 Isolation-Frameworks
  • A.2 Test-Frameworks
  • A.3 Test-APIs
  • A.4 IoC-Container
  • A.5 Datenbanktests
  • A.6 Webtests
  • A.7 UI-Tests (Desktop)
  • A.8 Thread-bezogene Tests
  • A.9 Akzeptanztests
  • A.10 API-Frameworks im BDD-Stil
  • Stichwortverzeichnis

More of this series

    Related titles

      More of this author(s)