使用Zend_Test进行单元测试:在Zend的ErrorController中调用非对象的成员函数hasResource()

时间:2010-12-31 07:32:54

标签: zend-framework phpunit doctrine-orm zend-test

我收到此错误

  

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

第53行看起来像

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

似乎$this->getInvokeArg('bootstrap')返回null。我没有其他错误。我在其他地方读到另一个问题,可能会引发异常,重置我的控制器或引导程序或类似的东西。是否有可能不显示该例外?甚至在PHP错误日志中?

我目前的设置如下

单个测试运行正常,但我仍然遇到错误

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

1 个答案:

答案 0 :(得分:6)

当您致电$application->run()时,会注册

bootstrap param。在单元测试引导程序中,不会调用run。您必须使用以下代码自行设置boostrap参数:

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