Я пишу некоторые модульные тесты для своих контроллеров, однако я столкнулся с проблемой, когда не обнаруживается, что компоненты, которые определены в моем файле AppController, не являются унаследовал мой контроллер во время тестирования.Компоненты AppController CakePHP не наследуются компонентами во время тестирования с помощью ControllerTestCase
Например, в моем файле AppController.php У меня есть следующие:
public $components = array('Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
), 'Session', 'DebugKit.Toolbar');
Если я иду к контроллеру в вопросе и использовать следующую строку кода в действии debug($this->components);
я получаю следующий результат:
array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array(
'username' => 'email'
)
)
)
),
(int) 0 => 'Session',
(int) 1 => 'DebugKit.Toolbar'
)
Тем не менее, во время проверки блока ту же строку кода будет выводить следующее:
array(
(int) 0 => 'Session'
)
В контроллере нет компонентов, поэтому там нет ничего, что может вызвать проблему, но не уверен, что проблема здесь или как ее решить.
Где находится ваш файл AppController.php? Если вы проверите 'get_included_files()' во время тестирования, это, вероятно, не ваш контроллер приложения, который загружен. – AD7six
CakePHP/Cake/Test/test_app/Controller/AppController.php загружается в отличие от моего AppController. Нечетный –
Вы установили CakePHP, используя композитор и грушу? Вы загружаете файл autoload.php композитора? – AD7six