Модульное тестирование с Zend_Test: вызов функции-члена hasResource () для необъекта в Zend's ErrorController - PullRequest
2 голосов
/ 31 декабря 2010

Я получаю эту ошибку

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 Ответ

6 голосов
/ 01 января 2011

параметр начальной загрузки регистрируется при вызове $application->run().В вашем модульном тесте начальной загрузки run не вызывается.Вы должны установить параметр boostrap с помощью этого кода:

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