Mock¶
In diesem Kapitel werden wir die CLI
testen. Hierfür werden wir die mock-Bibliothek verwenden, das seit Python 3.3 als
Teil der Python-Standardbibliothek unter dem Namen unittest.mock
ausgeliefert wird.
Objekte, die nicht real sind, können entweder Dummies, Fakes, Stubs, Mocks oder Spies sein. Sie sind alle sog. Test-Doubles. Mit dem pytest-eigenen monkeypatch-Fixture und unittest.mock solltet ihr jedoch über alle Funktionen verfügen, die ihr benötigt.
Die drei Kernfunktionalitäten von unittest.mock sind:
MockDie Mock-Klasse kann zur Simulation eines beliebigen Objekts verwendet werden.
MagickMockUnterklasse von Mock, die alle magischen Methoden enthält, z. B.
__str__,__len__usw.patch-MethodeIn einem bestimmten Modul wird ein Objekt gesucht und ersetzt durch ein anderes Objekt.
Wir werden uns im Folgenden das Mocking von Rückgabewerten, die Überprüfen von Mock-Funktionen-Aufrufen von und das Mocking von Exceptions anschauen. Es gibt jedoch noch eine ganze Reihe weiterer Mocking-Techniken, die wir nicht behandeln werden. Lest also unbedingt unittest.mock — mock object library, wenn ihr Mocking ausgiebig nutzen möchtet.