При тестировании контроллера выпечки bake создаст экземпляр связанного класса контроллера, чтобы получить модель по умолчанию для этого контроллера, и использует эту модель для расчета соответствующего прибора, который добавляется к свойству $fixtures
сгенерированный тестовый пример контроллера.
При создании экземпляра контроллера его метод initialize()
будет вызываться во время сборки, и именно здесь у вас начинается проблема. Вы вызываете $this->Authentication->getResult()
в вашем методе контроллеров initialize()
, в результате чего компонент аутентификации ищет требуемые данные аутентификации в объекте запроса, присоединенном к контроллеру, и уверен, что он не найдет такие данные, так как аутентификация не имеет состоялся.
Вы должны переместить logi c, который вызывает компонент аутентификации, в метод обратного вызова beforeFilter()
контроллеров. Этот метод по умолчанию будет запускаться только тогда, когда фабрика контроллеров или средство визуализации исключений вызывает контроллеры startupProcess()
метод, который обычно либо в реальном контексте HTTP-запроса, либо в контексте модульного теста, где могут быть предоставлены необходимые требуемые данные аутентификации.
См. Также