Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Mocking im Detail | Unittest-Framework
Python Fortgeschrittene Konzepte
course content

Kursinhalt

Python Fortgeschrittene Konzepte

Python Fortgeschrittene Konzepte

1. Module und Importe
2. Fehlerbehandlung
3. Dateiverwaltung
4. Pytest Framework
5. Unittest-Framework
6. Iteratoren und Generatoren

book
Mocking im Detail

Im vorherigen Kapitel haben wir die Bedeutung der Verwendung von Mock beim Testen gesehen. Jetzt werfen wir einen genaueren Blick auf die verschiedenen Fähigkeiten und klären alle Aspekte, die unklar waren.

Einführung in MagicMock

MagicMock ist eine unglaublich vielseitige Implementierung von Mock, die magische Methoden unterstützt. Sie können es verwenden, um das Verhalten komplexer Objekte in Ihren Tests nachzuahmen, wie wir im vorherigen Kapitel gesehen haben.

In diesem Beispiel wird MagicMock verwendet, um die Methode get_account_balance zu simulieren, die normalerweise Daten aus einer Datenbank abrufen würde.

Verwendung von mock.patch

@mock.patch wird verwendet, um die tatsächlichen Implementierungen von Objekten in Ihrem Code vorübergehend zu ersetzen.

Stellen Sie sich eine Funktion vor, die Benutzeranmeldeinformationen gegen eine Datenbank überprüft. Sie können mock.patch verwenden, um zu vermeiden, die tatsächliche Datenbank zu treffen:

Mocking mit Context Manager

Manchmal ist es vorzuziehen, patch() als Context Manager anstelle eines Dekorators zu verwenden, insbesondere wenn:

  • Sie ein Objekt nur für einen Teil des Tests mocken müssen;
  • oder wenn übermäßiger Gebrauch von Dekoratoren oder Parametern die Klarheit Ihrer Tests verringert.

Pytest Monkey Patch

Das monkeypatch-Fixture in Pytest ermöglicht es Ihnen, Klassen, Module oder Umgebungen während eines Tests vorübergehend zu ändern.

Das monkeypatch-Fixture ermöglicht es Ihnen, die Umgebung während des Tests sicher zu ändern und zu verwalten, ohne Nebenwirkungen außerhalb des Testbereichs zu verursachen.

1. Welcher der folgenden Code-Snippets mockt die Methode get_balance korrekt, um 500 zurückzugeben?

2. Was überprüft der folgende Test?

Welcher der folgenden Code-Snippets mockt die Methode get_balance korrekt, um 500 zurückzugeben?

Welcher der folgenden Code-Snippets mockt die Methode get_balance korrekt, um 500 zurückzugeben?

Wählen Sie die richtige Antwort aus

Was überprüft der folgende Test?

Was überprüft der folgende Test?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt