Lerne in kürzester Zeit, wie du deine C#-Applikationen mit Unit und Integration Tests versehen kannst
... damit du umfassende Software entwickeln kannst, die sich mit zunehmender Code-Basis immer noch effizient weiterentwickeln lässt und du Bugs schon frühzeitig identifizierst, sodass diese nicht in den Produktions-Code gelangen.
Laufzeit des Kurses
ca. 10 Stunden
Benötigte Vorkenntnisse
Fortgeschrittene C# Programmierfähigkeiten
Nahezu jede Firma stellt heutzutage sicher, dass die eigenen Anwendungen mit Unit Tests versehen werden. Denn diese helfen dabei, Bugs schon frühzeitig zu erkennen und sie reduzieren signifikant die Möglichkeit, dass Bugs überhaupt in den Produktionscode gelangen.
In anderen Worten: Sie sparen Unternehmen jede Menge Zeit und Geld.
Das bedeutet für dich: Wenn du diese Fähigkeiten beherrschst, machst du dich auf dem Arbeitsmarkt immens wertvoll.
In diesem Kurs wirst du deshalb Schritt-für-Schritt und von 0 an sowohl an das Thema Unit Testing als auch an das Thema Integration Testing mit C# herangeführt.
Genauer gesagt wirst du lernen:
All diese Kenntnisse wirst du "hands-on" anhand eines Praxisprojekts erwerben, denn wir programmieren eine komplette und funktionsfähige Web-API für eine Buchladen-Verwaltungssoftware.
Wenn du also deinen C# Wissensstand und somit deine Karriere als Softwareentwickler auf das nächste Level heben möchtest, um so in zukünftigen Bewerbungsgesprächen oder im Joballtag massiv zu punkten, solltest du diesen Kurs definitiv durcharbeiten.
Inhaltsverzeichnis des Kurses
In diesem Modul lernst du alle wichtigen Grundlagen bezüglich Unit Tests kennen. Angefangen bei "Was ist ein Unit Test?" bis hin zu den "Namenskonventionen von Unit Tests" wirst du in diesem Modul alles grundlegende erlernen. Zudem sind auch Praxisbeispiele und Übungsaufgaben integriert.
Diese Lektionen erwarten dich:
- [Video 1] Einleitung und Aufbau des Kurses
- [Video 2] Was ist ein Unit Test?
- [Video 3] Ziele des Unit Testing
- [Video 4] Aufbau eines Unit Tests
- [Video 5] Benennung von Unit Tests Variante 1 - "Fact"
- [Video 6] Benennung von Unit Tests Variante 2 - "Given When Then"
- [Video 7] Benennung von Unit Tests Variante 3 - "Should"
- [Video 8] Die 4 Säulen guter Tests
- [Video 9] Hochwertige Testsuite
- [Video 10] Beobachtbares Verhalten
- [Video 11] Blackbox und Whitebox
- [Video 12] Praxisbeispiel: Median-Rechner
- [Video 13] Übung - Aufgabenstellung
- [Video 14] Übung - Lösung
- [Video 15] Regression
- [Video 16] Praxisbeispiel für Testdoubles (Währungsumrechner Projekt)
- [Video 17] Übung - Aufgabenstellung
- [Video 18] Übung - Lösung
- [Video 19] Isolation
- [Video 20] Testabdeckung
- [Video 21] Testpyramide
In diesem Modul wirst du Schritt-für-Schritt anhand von einem Praxisbeispiel und einer Übung lernen, was es mit dem Thema "Test Driven Development" auf sich hat.
Diese Lektionen erwarten dich:
- [Video 1] TDD am Praxisbeispiel eines Anagram-Prüfers
- [Video 2] Übung - Aufgabenstellung
- [Video 3] Übung - Lösung
Damit man seinen Code testen kann, muss er gewisse Voraussetzungen erfüllen. Welche dies sind und wie testbarer Code aussieht, wirst du im Detail in diesem Modul erfahren.
Diese Lektionen erwarten dich:
- [Video 1] Einleitung
- [Video 2] Clean Architecture
- [Video 3] Arten von Code
- [Video 4] Praxisbeispiel Data Access Layer
- [Video 5] CI/CD Pipeline
- [Video 6] Das zugrundeliegende Problem mehrzeiliger Act Abschnitte
- [Video 7] Externe Abhängigkeiten
In diesem Modul wirst du anhand eines kompletten Praxisprojekts lernen, wie du Unit Tests im Programmier-Alltag einsetzt. Im Praxisprojekt werden wir gemeinsam eine komplette Web-API für eine Buchladen-Verwaltungssoftware entwickeln.
Diese Lektionen erwarten dich:
- [Video 1] Einleitung
- [Video 2] Visual Studio Workload
- [Video 3] Solution aufsetzen
- [Video 4] Domain Layer
- [Video 5] Application Layer (Teil 1)
- [Video 6] Application Layer (Teil 2)
- [Video 7] Application Layer (Teil 3)
- [Video 8] Application Layer (Teil 4)
- [Video 9] Application Layer (Teil 5)
- [Video 10] Application Layer (Teil 6)
- [Video 11] Application Layer (Teil 7)
- [Video 12] Application Layer (Teil 8)
- [Video 13] Refactoring
- [Video 14] Die verlorene User Story
Nachdem wir im vorangegangen Modul bereits sämtliche Unit Tests integriert haben, werden wir nun am Praxisprojekt weiter arbeiten und auch die Integrationstests durchführen.
Diese Lektionen erwarten dich:
- [Video 1] Db Context
- [Video 2] Repositories
- [Video 3] Services registrieren
- [Video 4] Startup
- [Video 5] Identity Seed
- [Video 6] Exception Middleware
- [Video 7] Controllers
- [Video 8] Integrationstests Basisklasse
- [Video 9] Sequentieller Ablauf
- [Video 10] Create Author Tests
- [Video 11] Update Author Tests
- [Video 12] Teardown aufräumen
- [Video 13] Create Book Tests
- [Video 14] Update Book Tests
- [Video 15] Book Delivery und Book Sale Tests
- [Video 16] Book Filter Tests
Beim Testen von Konsolenprojekten gibt es einige Details zu beachten. Welche das sind und wie man Konsolenprojekte testet, wirst du in diesem Modul erfahren.
Diese Lektionen erwarten dich:
- [Video 1] Integrationstest bei Konsolenprojekten
In diesem Modul wirst du Schritt-für-Schritt lernen, wie man den Logging-Mechanismus testen kann.
Diese Lektionen erwarten dich:
- [Video 1] Praxisprojekt um Logging Funktionalität erweitern und testen
Beim Thema Testen gibt es einige Best und Bad Practices, die man unbedingt auf dem Schirm haben sollte. Welche dies sind, wirst du in diesem Modul erfahren.
Diese Lektionen erwarten dich:
- [Video 1] Einleitung
- [Video 2] Tests bei Regression ergänzen
- [Video 3] Vermeide das Testen von Implementierungsdetails
- [Video 4] Anti-Pattern: Code Pollution
- [Video 5] Private Methoden und privater State
- [Video 6] Mehrere AAA-Abschnitte
- [Video 7] Logging testen
- [Video 8] Tests in der Build Pipeline
- [Video 9] In Memory Datenbanken
Herzlichen Glückwunsch, du hast den Kurs erfolgreich durchgearbeitet. In diesem Modul erhältst du nun noch einen Ausblick, wie du am besten weiter machst.
Diese Lektionen erwarten dich:
- [Video 1] Abschluss - Wie machst du jetzt weiter?