Вопросы

Модульное тестирование PHP с использованием Zend Auth и Zend ACL

У меня есть приложение, которое использует логин и zend_acl и zend_auth.

Во время предварительной отправки у меня есть плагин ACL, который создает все правила для ACL. У меня также есть плагин Auth, который проверяет, вошли ли вы в систему или нет, и если да, есть ли у вас доступ к запрошенному ресурсу в соответствии с ACL.

Поскольку приложение полностью находится за логином, ACL создается только в том случае, если вы вошли в систему.

Модульное тестирование кажется невозможным, или, скорее, я упускаю что-то очевидное.

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

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

Читать:
как получить HTML-контент из curl_multi_init?

Например, это проходит:

 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();

 }

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

Любая помощь очень ценится.

Похожие записи

Java 8 LocalDateTime

admin

Python3: установка в virtualenv не выполняется

admin

Как я могу разрешить документам в сегменте доступ к другим документам в этом же сегменте без разрешения общего доступа?

admin

Как изменить цвет строки состояния по умолчанию при переопределении стиля пользовательского интерфейса системы в Swift

admin

Не удалось установить соединение с SQL Server 2019

admin

Как запустить экземпляр контейнера с помощью API Azure?

admin