PHPUnit zwingt mich, Klassen vor der Instanz von

7

Ich teste ein Objekt, das eine Instanz einer anderen Klasse zurückgibt. Intern ruft diese Klasse require_once auf. Wenn ich versuche, zu überprüfen, ob das zurückgegebene Objekt von diesem Typ ist, erhalte ich folgende Meldung:

%Vor%

Diese Nachricht verschwindet, sobald ich require_once in meinem Test vor dem Aufruf von assertInstanceOf erneut anrufe. Das scheint nicht richtig zu sein. Es scheint, dass PHPUnit intelligent genug sein sollte, um zu wissen, dass die Klasse bereits geladen ist, so dass ich sie nicht erneut laden sollte. Denke ich an dieses Unrecht? Habe ich meine PHPUnit falsch konfiguriert? Gibt es eine Möglichkeit, diese Klasse in meinem Test nicht erneut zu benötigen?

    
Andrew 02.05.2012, 20:11
quelle

2 Antworten

2

Ihr Gerät könnte dem ähnlich sein:

%Vor%

Dies ist in Ordnung, außer hier. Hinweis: Die phpunit-Methode heißt VOR Ihrem Objekt. Da Sie bereits erwähnt haben, bedeutet Ihr Objekt intern bereits eine require_once-Methode, bis Ihre Methode aufgerufen wurde. "MyOtherClass" bleibt als undefinierte Klasse. Genau das ist passiert. PHPunit-Funktion bereit zu überprüfen mit 'MyOtherClass' und fand es nicht definiert!

Das eigene require_once des Objekts wurde nie aufgerufen. Deshalb müssen Sie vorher selbst anrufen. Es ist ähnlich, wenn Sie eine Anweisung wie true == $returnObject instanceOf MyOtherClass verwenden, die den gleichen Fehler zurückgibt, da beim Parsing von PHP die Klassendefinition nicht gefunden wurde.

    
thevikas 03.05.2012, 05:34
quelle
22

Achten Sie darauf, den vollständigen Namespace zu verwenden:

%Vor%     
Tyler Collier 17.04.2013 02:18
quelle

Tags und Links