我收到此错误
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
。我没有其他错误。我在其他地方读到另一个问题,可能会引发异常,从而重置我的 Controller 或 Bootstrap 或类似的东西。是否有可能不显示该异常?甚至在 PHP 错误日志中?
我当前的设置如下
- PHPUnit 的 bootstrap.php http://pastebin.com/YiP7i736
- 我尝试删除所有文件/测试,直到只剩下 1 个测试 http://pastebin.com/CsrLys4v
单个测试运行良好,但我仍然收到错误
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
最佳答案
引导参数在您调用$application->run()
时注册。在您的单元测试 Bootstrap 中,不会调用 run。您必须使用以下代码自行设置 boostrap 参数:
Zend_Controller_Front::getInstance()->setParam('bootstrap', $bootstrap);
关于zend-framework - 使用 Zend_Test 进行单元测试 : Call to a member function hasResource() on a non-object in Zend's ErrorController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4568797/