Исправления проблем с использованием PHPUnit и Zend Framework

Когда пользователь обращается / пользователь / проверяет без правильных параметров сообщения, мое приложение Zend генерирует исключение zend. (Я получаю стандартное сообщение «Сообщение об ошибке», обрамленное в моем макете). Это намеренно.

Теперь я пытаюсь проверить это поведение с помощью PHPUnit. Вот мой тест:

/** * @expectedException Zend_Exception */ public function testEmptyUserValidationParametersCauseException() { $this->dispatch('/user/validate'); } 

Когда я запускаю тест, я получаю сообщение о том, что оно не выполнено «Ожидаемое исключение Zend_Exception». Есть идеи?

У меня есть другие тесты в файле, которые работают отлично …

Благодаря!

Плагин Zend_Controller_Plugin_ErrorHandler обрабатывает исключения для вас, а по умолчанию Error_Controller заставляет перенаправление 500, что может означать, что исключение, которое вы тестируете, больше не существует. Попробуйте выполнить следующий модульный тест и посмотрите, проходит ли он:

 public function testUnknownUserRedirectsToErrorPage() { $this->dispatch('/user/validate'); $this->assertController('error'); $this->assertAction('error'); $this->assertResponseCode('500'); } 

Если это работает, то это показывает, что к тому моменту, когда вы создаете представление об ошибке, исключение больше не будет существовать, поскольку оно содержится в коде перед перенаправлением.

Ну, может быть, это просто терпит неудачу, потому что не исключено исключение?

Вы пытались запустить тест без «@expectedException Zend_Exception»? Есть ли вообще исключение?