2010-12-31 6 views
2

Ich erhalte diesen FehlerUnit Testing mit Zend_Test: Call auf eine Elementfunktion hasResource() auf einem Nicht-Objekt in Zends Errorcontroller

Fatal error: Call to a member function hasResource() on a non-object in D:\Projects\Tickle\application\controllers\ErrorController.php on line 53

wo Linie 53 sieht aus wie

if (!$bootstrap->hasResource('Log')) { 

Es scheint wie $this->getInvokeArg('bootstrap') gibt null zurück. Ich habe keine anderen Fehler. Ich habe woanders für ein anderes Problem gelesen, dass eine Ausnahme ausgelöst wird, die meinen Controller oder Bootstrap oder etwas ähnliches zurücksetzt. Ist es möglich, dass diese Ausnahme nicht angezeigt wird? sogar im PHP-Fehlerprotokoll?

Meine aktuelle Setup

Der einzige Test läuft gut, aber Ich habe immer noch den Fehler

D:\Projects\Tickle\tests>phpunit 
PHPUnit 3.5.5 by Sebastian Bergmann. 

. 
Fatal error: Call to a member function hasResource() on a non-object in D:\Projects\Tickle\application\controllers\Error 
Controller.php on line 53 
+0

Haben Sie die Tests durchgeführt? –

+0

@ St.Woland, Hmm ja, jetzt, wo du gefragt hast, scheint es, dass alle Tests laufen, zumindest wenn ich nur 1 Test habe. Vielleicht wird es direkt am Ende geworfen, löst es irgendetwas aus? –

+0

Versuchen Sie, Fehlerressource für Ihre Anwendung zu deaktivieren und sehen Sie, welche Ausgabe Sie erhalten. Es kann sich auf einen anderen Fehler in Ihrem Code beziehen. –

Antwort

6

b ootstrap param wird registriert, wenn Sie $application->run() anrufen. In Ihrem Komponententest-Bootstrap wird run nicht aufgerufen. Sie müssen die Boostrap-Parameter mit diesem Code selbst einstellen:

Zend_Controller_Front::getInstance()->setParam('bootstrap', $bootstrap); 
+0

Wie richte ich '$ Bootstrap' auch manuell ein? –

+0

Oh ... Ich kann '$ application-> getBootstrap()' verwenden, aber wie kann ich '$ application' von meinem' ControllerTestCase' bekommen? Ich habe versucht, diese Zeile in meinem phpunit 'bootstrap.php' zu setzen, es hat nicht funktioniert, ich habe immer noch Ressource –

+0

Einige Kuriositäten, die ich auch finde, bekomme ich" Kein Standard-Modul definiert "tho bin ich nicht mit Modulen und in meinem' application.ini' Ich habe 'controllerDirectory' bereits definiert, mein Qn & Sol [** hier **] (http://stackoverflow.com/questions/4507165/zend-test-no-default-module-defined-for-this -Anwendung). Ich frage mich, ob sie verwandt sind. Es scheint, als ob mein FrontController zurückgesetzt wurde oder so. Wenn ich '$ bootstrap = $ this-> getFrontController() -> getParam ('bootstrap')' und 'print_r ($ bootstrap)' bekomme ich nichts –

Verwandte Themen