![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.379
|
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.net - Blog, Codeschnipsel und mehr | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework |
| | |
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 302
|
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? |
| | |
| | Nach oben #3 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.379
|
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.net - Blog, Codeschnipsel und mehr | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Eigenartige Zuweisung von $this | Basti | PHP-Programmierung | 6 | 02.09.2008 09:45 |