У меня есть приложение, которое находится за логином и использует zend_acl и zend_auth.PHP Unit Testing с Zend Auth и Zend ACL
Во время предварительной отправки у меня есть плагин ACL, который создает все правила для ACL. У меня также есть плагин Auth, который проверяет, вошли ли вы в систему или нет, и если это так, если у вас есть доступ к запрашиваемому ресурсу в соответствии с ACL.
Поскольку приложение полностью за логину ACL создается только тогда, когда вы вошли в систему.
Модульное тестирование это оказывается невозможным, или, скорее, скорее всего, я что-то очевидное отсутствует.
В моем методе установки тестового модуля я имитирую успешный логин, который возвращает экземпляр zend_auth. Прошедшие тесты показывают, что этот логин был успешным.
Однако, если я попытаюсь выполнить попытку отправки в другое место или оценить, имеет ли пользователь, зарегистрированный пользователь, доступ к данному ресурсу, он всегда отклоняется плагином, поскольку он еще не вошел в систему. Конечно, почему это так, может кто-нибудь посоветовать?
Например, это проходит:
public function testLoggedIn()
{
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
Это терпит неудачу, как это отвергается плагин:
public function testUserAccess()
{
$this->dispatch('/home');
$this->assertResponseCode(200);
$this->assertQueryContentContains('#nav_side');
$this->resetRequest()
->resetResponse();
}
В этом, я нашел еще, кажется, перенаправление обратно на страницу входа в систему в качестве плагинов не знаю, что пользователь вошел в систему.
Любая помощь очень ценится.
Да, спасибо, что это проблема. –