Stub
Wissen kompakt: Stubs gibt es in vielen Formen. In der Softwareentwicklung ist ein Stub ein Platzhalter bzw. Stellvertreter, also z. B. eine Klasse, die als Schnittstelle zu einem Subjekt auftritt.
Stub – ein temporärer Platzhalter in der Softwareentwicklung
Ein Stub bezeichnet einen temporären Platzhalter bzw. Stellvertreter. Der Begriff stammt aus dem Englischen und bedeutet übersetzt Stummel oder Stumpf. In der Softwareentwicklung ist ein Stub ein Stellvertreter in Form einer Klasse, die als Schnittstelle zu einem Subjekt – einer Datei, einer Ressource, einem Speicherobjekt oder einer Netzwerkverbindung – auftritt. Als Stellvertreter dieses Subjektes kann er die Erzeugung des Subjekts und den entsprechenden Zugriff darauf steuern. Ein Stub kommt u.a. zum Einsatz, wenn
- benötigte externe Dienste (Datenbanken, Webservices, Server) im Rahmen einer Programmierung nicht verfügbar sind.
- benötigte Programmteile noch nicht implementiert wurden.
- bei Funktionstests das Schreiben und anschließende Löschen von Testdaten in Datenbanken vermieden soll.
Auch bei der Entwicklung verteilter Systeme kommen Stubs zur Anwendung. Dabei wird die benötigte Funktionalität des entfernten Softwaresystems so angesprochen, als wäre sie lokal vorhanden. Die gewünschte Funktion wird aber nicht implementiert, sondern per Anfrage über das Stub an das entfernte System delegiert (Remote Procedure Calls). Steht dabei der benötigte Datentyp fest, kommt ein monomorphischer Stub zum Einsatz, andernfalls ein polymorphischer Stub, der mit einer Hashtablle operiert, die auf eine Liste von Funktionen verweist, aber aufgrund des notwendigen Lookups langsamer agiert.
Anwendungsbereiche für Stubs
Generell wird der Begriff Stub in verschiedenen Bereichen auch fernab der Softwareentwicklung genutzt:
- Beim kooperativen Verfassen von Artikeln, bei dem Mitwirkende bspw. Details recherchieren wollen bzw. müssen.
- Als Nachweis eines Arbeitgebers über die Beträge, die er Arbeitnehmern bezahlt hat (ein sogenannter Pay Stub).
- Als Zeitraum im Zinsgeschäft, der von üblichen Intervallen abweicht (eine sogenannte Stub Period).
- In Computernetzwerken, bei denen ein Netzwerkabschnitt mit nur einem Ausgangsrouter andere Netzwerke verwendet.
- In der Elektronik als berechneter Längenabschnitt der Übertragungsleitung, der zum Anpassen der Impedanz in Übertragungsleitungen verwendet wird.
Der Unterschied zwischen Stub und Mock-Objekt
Immer wieder gibt es auch Diskussionen, was der Unterschied zwischen einem Stub und einem Mock-Objekt im Bereich Testing ist. Manche vertreten die Meinung, dass die Unterschiede lediglich marginal sind, da der Zweck von beiden darin besteht darin, alle Abhängigkeiten einer Klasse oder Funktion zu testen; andere hingegen verweisen auf unterschiedliche Erwartungen. Mit Mocks geschriebene Tests folgen normalerweise einem Initialisieren – Setzen von Erwartungen – Ausführung – Überprüfung, während ein Stub einer Initialisierung – Übung – Überprüfung folgt.
Hinweise:
Haben Sie Lust auf einen neuen Lieblings-Newsletter?
Die Inhalte auf dieser Seite dürfen Sie gerne teilen oder verlinken.
Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt: