PEP 417 – Aufnahme von mock in die Standardbibliothek
- Autor:
- Michael Foord <michael at python.org>
- Status:
- Final
- Typ:
- Standards Track
- Erstellt:
- 12. Mär 2012
- Python-Version:
- 3.3
- Post-History:
- 12. Mär 2012
- Resolution:
- Python-Dev Nachricht
Inhaltsverzeichnis
Zusammenfassung
Dieses PEP schlägt die Aufnahme der Testbibliothek mock [1] in die Python-Standardbibliothek als unittest.mock vor.
Begründung
Das Erstellen von Mock-Objekten für Tests ist ein häufiger Bedarf in Python. Viele Entwickler erstellen ad-hoc-Mocks nach Bedarf in ihren Test-Suiten. Dies ist derzeit, was wir in der Python-Test-Suite tun, wo eine standardisierte Mock-Objektbibliothek hilfreich wäre.
Es gibt viele Mock-Objektbibliotheken für Python [2]. Davon ist mock mit Abstand die beliebteste, mit so vielen Downloads auf PyPI wie alle anderen Mocking-Bibliotheken zusammen.
Ein Vorteil von mock ist, dass es sich um eine Mocking-Bibliothek und nicht um ein Framework handelt. Es bietet ein konfigurierbares und flexibles Mock-Objekt, ohne voreingenommen darüber zu sein, wie Sie Ihre Tests schreiben. Die mock-API ist nun gut bewährt und stabil.
mock behandelt auch das sichere Monkeypatching und Unmonkeypatching von Objekten während des Gültigkeitsbereichs eines Tests. Dies ist schwer sicher zu handhaben, und viele Entwickler/Projekte ahmen diese Funktionalität nach (oft falsch). Eine standardisierte Methode, dies zu tun, die die Komplexität des Patchings in Anwesenheit des Descriptor-Protokolls (usw.) handhabt, ist nützlich. Leute fragen nach einer "Patch" [3] Funktion für unittest. Dies über mock.patch zu tun, ist einer Neuimplementierung eines Teils dieser Funktionalität in unittest vorzuziehen.
Hintergrund
Die Aufnahme von mock in die Python-Standardbibliothek wurde auf dem Python Language Summit 2012 besprochen und vereinbart.
Offene Fragen
Ab Version 0.8, die zum Zeitpunkt des Schreibens aktuell ist, ist mock mit Python 2.4-3.2 kompatibel. Der Umzug in die Python-Standardbibliothek wird die Entfernung einiger Python 2-spezifischer "Kompatibilitäts-Hacks" ermöglichen.
mock 0.8 führte eine neue Funktion, "auto-speccing", ein, die eine ältere mock-Funktion namens "mocksignature" veraltet. Die "mocksignature"-Funktionalität kann vor der Aufnahme vollständig aus mock entfernt werden.
Referenzen
Urheberrecht
Dieses Dokument wurde gemeinfrei erklärt.
Quelle: https://github.com/python/peps/blob/main/peps/pep-0417.rst
Zuletzt geändert: 2025-02-01 08:59:27 GMT