Diskussion:Mock-Objekt

Letzter Kommentar: vor 7 Jahren von VÖRBY in Abschnitt Stub vs Driver
Bearbeiten

Bei mehreren automatisierten Botläufen wurde der folgende Weblink als nicht verfügbar erkannt. Bitte überprüfe, ob der Link tatsächlich down ist, und korrigiere oder entferne ihn in diesem Fall!


--Zwobot 13:32, 19. Jan 2006 (CET)

Mock vs Stub

Bearbeiten

Inwiefern ist der Begriff Mock zum Begriff Stub abzugrenzen? (nicht signierter Beitrag von 138.190.32.7 (Diskussion) )

In einer Auflistung in PDFs von einem Vortrag von Sebastian Bergmann (PHPUnit) findet sich in etwa folgende Abgrenzung: Dummy: Irgendein Objekt Fake: Wie dummy, kann aber für bestimmte Testzwecke ingesetzt werden (zB weil es das korrekte Interface implementiert). Kann nix, macht nichts. Stub: Wie Fake, gibt aber blind einfach statische, vorher definierte Daten zurück, wenn bestimmte Methoden aufgerufen werden. Spy: Wie Stub, bloss mit der Möglichkeit den Aufruf bestimmter Methoden festzustelen. Mock: Wie Spy, bloss dass in diesem Fall das Objekt zusätzlich bei Aufruf bestimmter Methoden bestimmte Erwartungen stellen kann.

insofern ist die im Text erwähnte Definition von "Mock" als "Dummy-Objekt" auch zumindest irreführend. --KingCrunch 01:03, 17. Okt. 2007 (CEST)Beantworten

Ich fände es ebenfalls gut, wenn in diesem Artikel auf die unterschiedlichen Test-Objekte hingewiesen würde (in beim Artikel zu Stub_(Programmierung) ein entsprechender Link zu diesem Artikel eingefügt wird). Sebastian Bergmann hat sich vermutlich von Martin Fowler inspirieren lassen, der in seinem Artikel "Mocks aren't stubs" eine ähnliche Klassifikation vorgenommen hat. --Thesaint 02 20:41, 27. Nov. 2007 (CET)Beantworten
Aus meiner Sicht wäre es sinnvoll, ein übergreifendees Lemma für Test Doubles (Begriff von Fowler) zu erstellen, welcher die unterschiedlichen Objekttypen zusammengefasst darstellt. Allen ein eigenes Lemma zu spendieren, scheint mit etwas zu viel. --PeterVitt 18:02, 26. Okt. 2009 (CET)Beantworten

Integrationstest

Bearbeiten

Habe ein paar Rechschreibfehler korrigiert. Der letzte Abschnitt dürfte auch etwas ausführlicher formuliert sein. Ich verstehe ihn nicht so recht. Sonst aber ein hilfreicher Artikel. 217.18.178.110 (Der vorstehende, falsch signierte Beitrag – siehe dazu Hilfe:Signatur – stammt von 217.18.178.110 (DiskussionBeiträge) 16:50, 11. Aug. 2008 (CEST)) Beantworten

Der Abschnitt mit dem Integrationstest war sowieso im falschen Artikel, der aber seinerseits noch garnicht verlinkt war. --j ?! 17:41, 11. Aug. 2008 (CEST)Beantworten

Stub vs Driver

Bearbeiten

(Fortsetzung von #Mock vs Stub)

Pol, Koomen und Spillner unterscheiden Hilfsroutinen beim Testen in Stubs (ersetzt ein aufzurufendes Modul, die aufrufende Komponente ist das zu testende Objekt/der Testling) und Driver (ersetzt eine aufrufende Komponente, die Subroutine ist der Testling). Diese Unterscheidung erscheint mir logisch. Ob nun Mock-Objekt und Stub (Programmierung) Synonyme sind oder komplementäre Begriffe, wäre die Frage.--VÖRBY (Diskussion) 11:02, 29. Mai 2017 (CEST); präzisiert: --VÖRBY (Diskussion) 13:05, 3. Jun. 2017 (CEST)Beantworten

Nach den definierenden Aussagen (~ 1. Satz) in den Einleitungen der beiden Artikel wäre 'Mock-Objekt' ("Platzhalter für echte Objekte") und 'Stub' ("anstelle eines anderen Programmcodes steht") auf den ersten Blick identisch und könnten für beide o.g. 'Rollen' Verwendung finden. Allerdings ist nach den weiteren Erläuterungen dort ein MO ein 'Driver' ("... Umgebung nachgebildet werden", ".. implementieren die Schnittstellen"), ein Stub der Ersatz eines aufzurufenden Objekts ("noch nicht entwickelt", "als wäre die Funktionalität des entfernten Systems lokal vorhanden"), also ein 'Stub' i.S. von Pol-K-S. Die beiden Begriffe würden sich so gesehen im Thema 'Testen' ergänzen und wären keine Synonyme oder Über-/Teilbegriffe. Die o.g. 'Rollen' möglicher Hilfsroutinen und Hinweise auf den jeweils anderen Begriff wären in den beiden Artikeln zweckmäßig. Was sagen dazu andere Quellen? --VÖRBY (Diskussion) 12:42, 29. Mai 2017 (CEST)Beantworten

Allerdings: Die Beispiele unter Mock-Objekt#Einsatz beschreiben beide Verwendungsszenarien von Hilfsroutinen. Auch wird bei MO gesagt, es "liefere ... festgelegte Werte zurück", es wäre also doch (auch) ein aufgerufenes Objekt - und somit nicht das Gegenteil von Stub, sondern irgendwie ein Überbegriff für beide Arten. Klarstellung dringend wünschenswert. --VÖRBY (Diskussion) 12:53, 29. Mai 2017 (CEST); ergänzt: --VÖRBY (Diskussion) 12:44, 30. Mai 2017 (CEST; ergänzt: --VÖRBY (Diskussion) 16:38, 3. Jun. 2017 (CEST))Beantworten
Ebenfalls unklar: Die Texte stehen oft i.Z. mit der Objektorientierung (Bsp "Methodenaufrufe"), auch bei Modultest#Isolierung von Testobjekten (zB mit "Inversion of Control"). Das ist auch bei 'Stub' so ("Datentyp, monomorpischer Stub ..."). Ich denke, die beiden Verwendungsszenarien (unabhängig von der jeweiligen Bezeichnung) sind nicht auf die OO beschränkt. Ergänzung: Mock usw. scheint aber doch von OO zu kommen; siehe Diskussion in [1]. Dort stellt der Frager fest, dass man 'früher' einfach nur Dummies und Driver unterschied (zum Testen des Aufrufers oder des Sub). Die Antwort: Driver würden nach wie vor so bezeichnet werden, die anderen Bezeichnungen seien 'Dummies'. Diese werden aber wohl aus OO-bezogenen Gründen differenziert und individuell bezeichnet. Fazit: Mock und die entsprechenden Varianten sind doch nur Ausdrücke aus der OO-Welt. Ergänzt: --VÖRBY (Diskussion) 11:05, 4. Jun. 2017 (CEST)Beantworten
Auch würden sich gem. 'Modultest' Stub und Mock lediglich dadurch unterscheiden, dass ein Mock individuelle Rückgabewerte liefert. Das scheint mir eine fragwürdige Definition - die so auch nicht bei 'Stub' steht. Nochmal: Die Unterscheidung nach Driver und Stub (lt. P_K_S) kommt in den Texten praktisch nicht vor - was aber ein wesentlicher Aspekt ist. Überarbeiten! Redundanzen oder Widersprüche bereinigen.--VÖRBY (Diskussion) 12:38, 31. Mai 2017 (CEST)Beantworten

Da es hier noch kein Feedback gibt, mein Vorschlag:

  • Bei 'Modultest#Isolieren ...' lediglich erwähnen, dass diese Hilfsobjekte Stubs (oder Dummies) bzw. Driver sind - mit REF auf P-K-S. Zusätzlich Hinweis auf weitere Differenzierung bei OO und Link auf 'Mock-Objekt'.
  • In MT#Isolieren... die Aufzählung löschen und bei 'Mock-Objekt' einfügen - inkl. dortige Referenz.
  • In Stub (Programmierung) einen Hinweis, dass i.Z. mit Modultests und OO der Ausdruck eine im Detail andere Bedeutung hat.

Ansonsten würde ich mich bei MO raushalten. Die widersprüchlichen Defs gibt es offensichtlich schon seit 10 Jahren (s.Disk), vlt. kann da ein Anderer Klarheit schaffen. --VÖRBY (Diskussion) 17:07, 7. Jun. 2017 (CEST)Beantworten