Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m450:learningunits:lu04:monkeypatch [2024/11/12 07:21] msutermodul:m450:learningunits:lu04:monkeypatch [2024/11/12 07:30] (aktuell) msuter
Zeile 7: Zeile 7:
 Ein Unittest soll eine einzelne Funktion oder sogar nur Teile einer Funktion testen. Ein Unittest soll eine einzelne Funktion oder sogar nur Teile einer Funktion testen.
 Die zu testende Funktion wird aber in der Regel Objekte verarbeiten und weitere Funktionen/Methoden aufrufen. Die zu testende Funktion wird aber in der Regel Objekte verarbeiten und weitere Funktionen/Methoden aufrufen.
-Dadurch wird es schwieriger zu erkennenwelcher Teil der Applikation für einen allfälligen Fehler verantwortlich ist.+Funktionen und Klassen werden bei Unittests simuliert (oder "gemockt"), um bestimmte Abhängigkeiten zu isolieren und das Testen einzelner Komponenten zu ermöglichenohne dass externe Systeme oder komplexe Abläufe involviert sindHier sind die Hauptgründe, warum Mocking beim Testen hilfreich ist:
  
-Auch Zugriffe auf Datenbanken und Dateien sollten über simulierte Funktionen erfolgen.+==== Isolation der Testobjekte ==== 
 +Mocking hilft, sich nur auf die zu testende Funktion oder Klasse zu konzentrieren, ohne dass Abhängigkeiten zu anderen Modulen oder Komponenten den Test beeinflussen. So können wir sicherstellen, dass der Test nur das Verhalten der spezifischen Komponente überprüft und nicht durch externe Faktoren verzerrt wird. 
 + 
 +==== Vermeidung externer Abhängigkeiten ==== 
 +In vielen Anwendungen greifen Funktionen und Klassen auf externe Ressourcen zu, wie Datenbanken, APIs, Dateisysteme oder Netzwerke. Diese Ressourcen sind oft schwer zugänglich, langsam oder unzuverlässig. Durch Mocking werden solche Abhängigkeiten ersetzt, sodass Tests schnell, zuverlässig und unabhängig von der Verfügbarkeit externer Ressourcen sind. 
 + 
 +==== Kontrolle über Rückgabewerte und Fehlerzustände ==== 
 +Mocks ermöglichen es, gezielt verschiedene Rückgabewerte oder Fehler zu simulieren, um zu überprüfen, wie die getestete Komponente darauf reagiert. So lassen sich Szenarien testen, die in der realen Umgebung schwer reproduzierbar wären, wie Netzwerkfehler oder spezifische Ausnahmefälle. 
 + 
 +==== Verbesserte Performance ==== 
 +Da Mocks die tatsächlichen Ausführungen komplexer Funktionen oder Klassen ersetzen, laufen Tests oft schneller und benötigen weniger Ressourcen. Besonders bei großen Test-Suites führt dies zu einer deutlichen Zeitersparnis. 
 + 
 +Insgesamt macht Mocking Unittests flexibler, effizienter und zuverlässiger, was die Qualität und Wartbarkeit des Codes verbessert.
  
  
  • modul/m450/learningunits/lu04/monkeypatch.1731392513.txt.gz
  • Zuletzt geändert: 2024/11/12 07:21
  • von msuter