Ich höre oft den Ausdruck "Stummel", "etwas herausstummeln", "Stummel" und so weiter.
Was bedeutet Stubbing in der Programmierung und woher kommt das Wort? In welchen Kontexten kann es eingesetzt werden?
Ich höre oft den Ausdruck "Stummel", "etwas herausstummeln", "Stummel" und so weiter.
Was bedeutet Stubbing in der Programmierung und woher kommt das Wort? In welchen Kontexten kann es eingesetzt werden?
Antworten:
Eine Stub-Methode ist eine Methode, die nur ein einfaches, aber gültiges (wenn auch nicht notwendigerweise korrektes) Ergebnis zurückgibt.
Sie werden in der Regel beim Aufbau der Infrastruktur erstellt, und Sie möchten jetzt nicht für jede erforderliche Methode Zeit 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.
Eine andere Stelle, an der 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 dann sicherstellen, 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.
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 beschlossen , eine Funktion mit dem Namen zu haben createMenubar
, createToolbar
und createMain
so , dass Ihre Anwendung Konstruktor ist sauber und ordentlich.
Ihr Hauptcode sieht ungefähr so aus (dieses Beispiel ist in Python):
class ExampleApp():
def __init__(self):
self.createMenubar()
self.createToolbar()
self.createMain()
Solange nicht alles funktioniert, schlägt Ihre Hauptfunktion fehl. Wie können Sie Ihre App während der Entwicklung testen? Wenn Sie beispielsweise mit der Arbeit beginnen, createMenubar
schlägt die Initialisierung fehl, nachdem die Menüleiste erstellt wurde, da Sie die Symbolleiste oder den Hauptbereich der GUI nicht implementiert haben.
Dies ist , wo Stubs kommen in. Sie eine Funktion mit dem Namen erstellen können , createToolbar
und createMain
dass die Anforderung erfüllen , des App - Konstruktor (nämlich , dass diese Funktionen vorhanden ist ), ohne sie tatsächlich umsetzen 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 zum Schluss entfernen Sie den Stub für createMain
eine echte Implementierung.
Beachten Sie, dass Stubs nicht unbedingt nichts tun müssen. Diese Stubs könnten beispielsweise ein leeres Container-Widget erstellen, das der App-Konstruktor anordnen kann. Der Punkt ist, dass Sie Dummy-Funktionen oder -Objekte erstellen, die gerade so viel bewirken, dass der andere Code ausgeführt wird, während Sie ihn entwickeln. Im Laufe der Zeit tauschen Sie die Stubs nacheinander aus, bis Ihre Bewerbung vollständig ist.
Bei der Programmierung von oben nach unten wird ein "Stich" verwendet. In diesem Moment 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 liefert genug Wert, um den "erfahreneren" Teil des Programms zum Laufen zu bringen. Bis es Zeit ist, dass der Stummel ersetzt oder mit seiner wahren Berechnung oder seinem Wert ausgestattet wird.