RSS Planet Python

Echtes Python: Verständnis der Python-Mock-Objekt-Bibliothek

Mocking in Python mit unittest.mock ermöglicht es, komplexe Logik oder unvorhersehbare Abhängigkeiten, wie Antworten von externen Diensten, in einer Testumgebung zu simulieren. Ein Mock-Objekt ist ein Ersatzobjekt, das ein reales Objekt in einer Testumgebung simuliert, was kontrollierbare und vorhersehbare Testumgebungen für Ihren Python-Code ermöglicht. Die Mock-Klasse ermöglicht es, reale Objekte nachzuahmen, und die patch()-Funktion ermöglicht es, Mocks vorübergehend für reale Objekte in Ihren Tests zu ersetzen. Mock unterscheidet sich von MagicMock darin, dass MagicMock Implementierungen der meisten Magischen Methoden enthält. Sie können überprüfen, ob ein Mock-Objekt aufgerufen wurde, indem Sie Methoden wie .assert_called() verwenden, und einen Mock-Rückgabewert durch Zuweisen eines Werts zum .return_value-Attribut des Mocks setzen. Das Verwenden von Mock-Objekten ist eine vielseitige und leistungsfähige Möglichkeit, die Qualität Ihrer Tests zu verbessern, insbesondere wenn Sie Bereiche Ihres Codebasises testen, die schwierig zu befriedigen sind, wie z.B. Ausnahmeblöcke und If-Anweisungen. Die Python-Mock-Objekt-Bibliothek, unittest.mock, bietet eine einfache Möglichkeit, Mocks in Ihre Tests einzuführen und ist ab Python 3.3 Teil der Standardbibliothek. Die Bibliothek bietet eine Klasse namens Mock, die Sie verwenden, um reale Objekte in Ihrem Codebase nachzuahmen, und eine Funktion namens patch(), die die realen Objekte in Ihrem Code durch Mock-Instanzen ersetzt. Durch das Verwenden von Python-Mock-Objekten können Sie das Verhalten Ihres Codes während des Testens steuern und verstehen, wie Sie ihre realen Gegenstücke in Ihrem Code verwenden. Mock-Objekte enthalten Daten über ihre Verwendung, die Sie inspizieren können, wie z.B. ob Sie eine Methode aufgerufen haben, wie Sie die Methode aufgerufen haben und wie oft Sie die Methode aufgerufen haben.
favicon
realpython.com
Real Python: Understanding the Python Mock Object Library
Bild zum Artikel: Echtes Python: Verständnis der Python-Mock-Objekt-Bibliothek
Create attached notes ...