Nachdem ich meine Vorsätze für das neue Jahr fortgesetzt habe, um mehr mit TDD zu tun zu haben, beginne ich jetzt, mehr mit Rhino Mocks zu arbeiten .
Eine Sache, die ich gerne tun möchte, ist sicherzustellen, dass ich wirklich weiß, worauf ich mich einlasse. Deshalb wollte ich mein Verständnis für das überprüfen, was ich bisher gesehen habe (und ich dachte, es wäre gut, es hier als zu veröffentlichen Ressource).
Was ist ein "Stub"?
unit-testing
testing
tdd
stub
Rob Cooper
quelle
quelle
Antworten:
Martin Fowler hat einen ausgezeichneten Artikel zu diesem Thema geschrieben. Aus diesem Artikel:
Um es in meinen eigenen Worten auszudrücken: Scheinobjekte "erwarten", dass bestimmte Methoden für sie aufgerufen werden, und führen normalerweise dazu, dass ein Komponententest fehlschlägt, wenn ihre Erwartungen nicht erfüllt werden. Stub-Objekte liefern vordefinierte Antworten (und können von Hilfsbibliotheken automatisch generiert werden), führen jedoch normalerweise nicht direkt zum Fehlschlagen des Komponententests. Sie werden normalerweise nur verwendet, damit das zu testende Objekt die Daten erhält, die es für seine Arbeit benötigt.
quelle
Ein "Stub" ist eine Implementierung einer Schnittstelle, die existiert, um Daten / eine Antwort irgendeiner Art bereitzustellen. Beispielsweise:
Normalerweise wird dies von einem anderen Dienst bereitgestellt (sei es ein Webdienst, eine andere Anwendung, eine Datenbank), aber um die Testbarkeit des Codes zu verbessern , werden die Ergebnisse "gefälscht".
Ein wesentlicher Vorteil davon ist, dass Aussagen in Unit-Tests auf der Grundlage der erwarteten Daten gemacht werden können. Wenn aufgrund von Datenfehlern Fehler auftreten, können problemlos Tests hinzugefügt, ein neuer Stub erstellt (Replikation des Datenfehlers) und Code zur Korrektur des Fehlers erstellt werden.
Stubs unterscheiden sich von Mocks darin, dass sie verwendet werden, um den Zustand eines Objekts darzustellen und zu testen , während ein Mock seine Interaktion testet .
quelle
Ich glaube, "Stub" kommt von STartUpBlock. Es wird verwendet, um auf Teile des Codes zu verweisen, die automatisch generiert werden, um Ihnen als Entwickler den Einstieg zu erleichtern.
quelle
Eine "Stub" - oder "Stub-Methode" ist als Startercode oder vorübergehender Ersatz für noch zu entwickelnden Code konzipiert. Es ist ein integrierter Code, der von einer IDE generiert wird. Stub-Methoden sind Methoden zum Testen von Methoden einer bestimmten Klasse. Es wird verwendet, indem Sie einige Werte für die lokalen Variablen in Ihre tatsächlichen Entwicklungsmethoden eingeben und prüfen, ob die Ausgabe korrekt ist. Es ist wichtig, Fehler in Ihrem Code zu finden.
quelle
Ich habe mich kürzlich der Frage gestellt und festgestellt, dass dieser Vergleich zwischen Stub und Driver wirklich klar und hilfreich ist:
Grundsätzlich sind Stubs und Treiber Routinen, die nichts anderes tun, als sich selbst und die von ihnen akzeptierten Parameter zu deklarieren. Der Rest des Codes kann diese Parameter dann als Eingaben verwenden.
Vom Unterschied zwischen Stub und Driver
quelle
Nach einigen Recherchen und basierend auf Stub-Dateien, mit denen ich während meines Codiererlebens konfrontiert war, würde ich sagen, dass eine Stub-Datei nur eine Datei ist, die die gesamte oder einen Teil der Implementierung einer Datei enthält. Es hilft Entwicklern, mit dem Codieren zu beginnen.
quelle