it-swarm.com.de

Was bedeutet Stubbing in der Programmierung?

Ich höre oft den Begriff "Stub", "Stub etwas raus", "Stubs" und so weiter.

Was bedeutet Stubbing beim Programmieren und woher kommt das Wort? In welchen Kontexten kann es verwendet werden?

26
Wazery

Eine Stub-Methode ist eine Methode, die nur ein einfaches, aber gültiges (wenn auch nicht unbedingt korrektes) Ergebnis zurückgibt.

Sie werden normalerweise beim Aufbau der Infrastruktur erstellt, und Sie möchten nicht Zeit für jede derzeit benötigte Methode aufwenden. Stattdessen erstellen Sie Stubs, damit alles kompiliert wird und die automatische Vervollständigung Ihrer IDE über die Methoden informiert ist, die Sie verwenden möchten.

Ein weiterer Ort, an dem Stubs verwendet werden, ist das Verspotten beim Testen. Sie geben Stub-Methoden anstelle der normalen Abhängigkeit durch Abhängigkeitsinjektion an, die feste Ergebnisse zurückgeben, und stellen dann sicher, dass der Code das Richtige mit ihnen tut. Dies isoliert das Testen auf den Code, den Sie testen möchten, und bedeutet, dass Sie keine Datenbank hochfahren müssen, um diese Tests auszuführen.

31
ratchet freak

Vielleicht lässt sich dies am besten mit einem konkreten Beispiel beantworten. Betrachten wir den Fall, in dem Sie eine Desktop-Anwendung erstellen. Sie haben sich für eine Funktion mit den Namen createMenubar, createToolbar und createMain entschieden, damit Ihr Anwendungskonstruktor ordentlich und ordentlich ist.

Ihr Hauptcode sieht ungefähr so ​​aus (dieses Beispiel ist in Python):

class ExampleApp():
    def __init__(self):
        self.createMenubar()
        self.createToolbar()
        self.createMain()

Bis alles funktioniert, schlägt Ihre Hauptfunktion fehl. Wie können Sie Ihre App während der Entwicklung testen? Wenn Sie beispielsweise mit der Arbeit an createMenubar beginnen, schlägt die Initialisierung nach dem Erstellen der Menüleiste fehl, da Sie die Symbolleiste oder den Hauptbereich der GUI nicht implementiert haben.

Hier kommen Stubs ins Spiel. Sie können eine Funktion mit den Namen createToolbar und createMain erstellen, die die Anforderungen des App-Konstruktors erfüllen (nämlich, dass diese Funktionen vorhanden sind), ohne sie tatsächlich implementieren zu müssen. Diese Funktionen sind Stubs:

def createToolbar():
    pass

def createMain():
    pass

Mit diesen Stubs können Sie mit der Implementierung des Hauptprogramms und der Menüleiste beginnen, ohne sich um die Details der Symbolleiste oder des Hauptteils des Programms kümmern zu müssen. Schließlich wechseln Sie zur Symbolleiste und ersetzen den Stub durch die eigentliche Funktion. Und schließlich entfernen Sie den Stub für createMain und geben ihm eine echte Implementierung.

Beachten Sie, dass Stubs nicht unbedingt nichts tun müssen. Diese Stubs können beispielsweise ein leeres Container-Widget erstellen, das der App-Konstruktor anordnen kann. Der Punkt ist, dass Sie Dummy-Funktionen oder Objekte erstellen, die gerade genug ausführen, damit Ihr anderer Code ausgeführt wird, während Sie ihn entwickeln. Im Laufe der Zeit ersetzen Sie die Stubs einzeln, bis Ihre Bewerbung abgeschlossen ist.

6
Bryan Oakley

Bei der "Top-Down" -Programmierung wird ein "Stub" verwendet. Dann erstellen Sie Ihre Anwendung vom Allgemeinen zum Besonderen. Dabei verwenden Sie "Stubs" als "Platzhalter" für die spezifischen Anwendungen, für deren Erstellung Sie keine Zeit hatten. Sie geben häufig Dinge wie Dummy- oder Zufallswerte an den allgemeineren Teil des Programms zurück. Das ist in Ordnung, der Stub füttert genug Wert, damit der "ältere" Teil des Programms funktioniert. Bis es Zeit ist, dass der Stummel ersetzt oder mit seiner wahren Berechnung oder seinem Wert versehen wird.

2
Tom Au