Тестирование формы с отсутствующими элементами выдает ошибку с ErrorController.php - PullRequest
0 голосов
/ 18 сентября 2011

Я провожу некоторое тестирование в моей форме входа в систему, но замечаю, что если я не отправляю все ожидаемые параметры, я получаю эту ошибку:

Неустранимая ошибка: вызов функции-члена hasResource () для необъекта в C: \ demo \ application \ controllers \ ErrorController.php в строке 47

, например, этот тестовый код дает мне ошибку:

public function testLoginPage ()
{
    $this->request->setMethod('POST')->setPost(
    array('username' => 'foobar');

    $this->dispatch('/usuario/login');
}

Ноесли я отправляю все элементы, все работает как положено:

public function testLoginPage ()
{
    $this->request->setMethod('POST')->setPost(
    array('username' => 'foobar','password' => 'secret');
    $this->dispatch('/usuario/login');
}

Это нормально?Я не понимаю, почему я получаю сообщение об ошибке ErrorController.php, где находится соединение?

(я подумал, что, возможно, это не загружается, но почему это работает, когда все элементы работают?)

Любая помощь, понимающая это, будет оценена.

Спасибо

Обновление:

Я просто изменяю неверный пароль для базы данных базы данных в приложении.ini, и это дает мне ту же ошибку.Теперь я даже не думаю, что это форма, но, возможно, какой-то вызов при загрузке, который зависит от идентичности Zend_Auth.Но что это значит Fatal error: Call to a member function hasResource() on a non-object?как загрузить этот объект?

1 Ответ

4 голосов
/ 18 сентября 2011

Прочитайте сообщение об ошибке, которое вы получите. Вы звоните hasResource() для необъекта в ErrorController.php. Ваш контроллер ошибок не работает, но проблема не в этом.

Проблема в том, что где-то выдается исключение (возможно, в вашей форме, при начальной загрузке или где-либо еще), которое вызывает контроллер ошибок. Исправьте или отключите обработчик ошибок, чтобы получить сообщение об исключении и трассировку стека, чтобы выяснить вашу проблему.

Чтобы отключить обработчик ошибок

$front = Zend_Controller_Front::getInstance();
$front->setParam('noErrorHandler', true);
...