Когда пользователь обращается / пользователь / проверяет без правильных параметров сообщения, мое приложение 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»? Есть ли вообще исключение?