Silvério Santos schrieb:
> hat jemand PHPUnit2 im Verwendung?
Du kannst Dir die Antwort darauf vermutlich denken ;-)
> Wenn ja, wie habt ihr folgendes
> Problem der Kapselung gelöst:
>
[Eine Klasse und die dazugehörige Test-Klasse]
> Die Ergebnisse von GibsDuMirMehr sind nicht gekapselt und ich kann auch
> kein stub (mit $this->getMock('GibsDuMirMehr')) in hasteNichGesehen
> injecten, ohne diesen von aussen als Parameter zu übergeben. Kennt ihr
> ein besseres Verfahren?
Hmm, zunächst mal sind Unit-Tests grundsätzlich Blackbox-Tests, sie
testen also nicht die Funktionsweise einer Methode, sondern nur, ob die
Methode das zugesicherte Verhalten zeigt. Deine Methode soll "true"
zurückgeben und das testet Deine Test-Klasse. Mehr kannst Du in dem
Szenario von Unit-Testing nicht erwarten.
Darüber hinaus verwendet Dein Code keine Dependency-Injection, denn das
würde bedeuten, dass der Aufrufer die Kontrolle über die *Instanz*, die
in der Variable "fuellMich" gespeichert ist, hat (und damit das
Einfügen (die Dependency-Injection) einer solchen Instanz zur
Klassenschnittstelle der getesteten Klasse gehört). Wenn Du DI
verwendest, dann kann der Test vor dem Testen genau diese Funktionalität
nutzen, um einen Mock statt des produktiv verwendeten Objekts einzufügen.
Eigentlich klingt Dein Beispiel aber eher so, als wolltest Du
Integrationstests durchführen.
Viele Grüße
Max
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org