Portal > Foren > PHP > PEAR, PECL und Frameworks > [PHPUNIT] Warum $this->assert*() anstatt self::assert*()
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 28.09.2008, 04:24 Nach oben    #1
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard [PHPUNIT] Warum $this->assert*() anstatt self::assert*()

Nachdem ich mich jetzt schon etwas mit PHPUnit beschäftige ist mir eine Sache aufgefallen die ich nicht so ganz verstehe.

Sämtliche assert*() Methoden die definiert sind, sind ja statischer Natur (public static), doch warum habe ich noch in keinem Manual zu phpunit oder den Unittests von irgendwelchem Code im Web self::assert*() oder PHPUnit_Class_Name::assert*(); gesehen, warum wird in den Tests (die ja meist von PHPUnit_Framework_TestCase oder ähnlichem erben) dann immer via $this->assert*() zugegriffen ?

Da die Methoden ja eigentlich statisch sind, sollte man dann nicht auch statisch via self::assert*() darauf zugreifen ?

Gibt es dafür Gründe ?
Hat es sich einfach nur so eingebürgert ?
Oder ist es OK wenn man statische Methoden einfach nicht-statisch aufruft ? Umgekehrt, nicht-statische methoden statisch aufzurufen schmeißt ja ab PHP5 mit error_reporting(E_ALL | E_STRICT); sogar nen Fehler ("Non-Static Method Class::Method should not be called statically"), daher interessiert mich warum dem andersrum nicht so ist.

mfg
robo47
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2008, 16:42 Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 287
Standard

Vielleicht werden Informationen jeder durchgeführten Assertion im Test_Case Objekt gespeichert, so das am Ende aller Tests das Test_Case Objekt Informationen über die Endergebnisse beinhaltet. Mit einem self ginge dies ja nicht weil das ja nicht direkt in Verbindung mit dem gerade durchlaufenen Test_Case steht. Durch ein self weiß ja der Test_Case nichts vom Ergebnis. So irgendwie?
ex³ ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.10.2008, 11:04 Nach oben    #3
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard

hmm, muss ich vielleicht mal schauen, aber ich denke in den asserts kann garnicht via $this zugegriffen werden, weil die ja als abstrakt deklariert sind und die funktion der asserts in php-unit läuft ja darauf hinaus, dass sie einfach ne exception schmeißen die durch die funktion nach oben geht bis hoch dorthin wo via reflection the funktion gerade getestet wurde.
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eigenartige Zuweisung von $this Basti PHP-Programmierung 6 02.09.2008 09:45


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45