Я тестирую действие контроллера в CakePHP, которое перенаправляет на разные URL-адреса в зависимости от определенных условий:
if ( !$userIsAdmin ) {
$this->Session->setFlash(__('Not allowed.'));
$this->redirect('/users');
}
if ( $this->MyModel->delete($id) ) {
$this->Session->setFlash(__('Success.'));
$this->redirect('/users');
}
else {
$this->Session->setFlash(__('Failed. Please, try again.'));
$this->redirect("/my_models/edit/$id");
}
Проблема заключается в том, что redirect(...)
фактически не перенаправляет при выполнении модульных тестов, поскольку это поддельный метод.
Поэтому, когда я пытаюсь установить $this->headers
для сравнения с ожидаемым URL-адресом, происходит сбой, поскольку последний отслеживаемый URL-адрес - это последний из вызовов redirect()
, который был выполнен.
IsЕсть ли способ избежать этого?
Спасибо!