У меня есть слушатель событий, установленный в модуле (он проверяет права доступа пользователей) в методе onBootstrap:Detach ZF2 слушателя событий во время блока тестов
// attach permission listener to route event
$eventManager = $e->getApplication()->getEventManager();
$sm = $e->getApplication()->getServiceManager();
$permissionsListener = $sm->get('MyModule\Listener\Permissions');
$permissionsListener->attach($eventManager);
Это хорошо работает в штатном режиме.
Для модульных тестов было бы замечательно, если бы я мог отключить эту систему разрешений, чтобы легко проверить, что все страницы работают правильно, не беспокоясь о настройке поддельного пользователя-администратора.
Но я не знаю, как это сделать.
В моем тесте, который проходит AbstractHttpControllerTestCase, я сделал что-то вроде этого:
// detach permission listener to route event
$sm = Bootstrap::getServiceManager();
$eventManager = $this->getApplication()->getEventManager();
$permissionsListener = $sm->get('MyModule\Listener\Permissions');
$permissionsListener->detach($eventManager);
Но это не отключает систему разрешений. Как это может быть сделано?
Вы пытались насмехаться над прослушивателем разрешения? у нас есть аналогичная установка, как это в нашем проекте. То, что мы сделали в модульном тесте, - это также издеваться над слушателем – PrinceG