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

Jie*_*eng 2 phpunit zend-framework zend-test doctrine-orm

我收到了这个错误

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')) {
Run Code Online (Sandbox Code Playgroud)

这似乎是$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
Run Code Online (Sandbox Code Playgroud)

Max*_*nce 6

调用时会注册bootstrap param $application->run().在单元测试引导程序中,不会调用run.您必须使用以下代码自行设置boostrap参数:

Zend_Controller_Front::getInstance()->setParam('bootstrap', $bootstrap);
Run Code Online (Sandbox Code Playgroud)