Только что началось создание некоторых модульных тестов для моих контроллеров в приложении CakePHP, однако я полностью смущен тем, как я должен создать макет для компонента Auth, я прочитал CookBook и думал, что у меня есть это правильно, но продолжайте получать эту ошибку.Создание объекта Mock Auth в тесте контроллера CakePHP
Error: Call to a member function allow() on a non-object
В контроллере я тестирую есть функция beforeFilter со следующим кодом:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('create');
}
В моем тесте я включил следующие:
$Leagues = $this->generate('Leagues', array(
'components' => array(
'Auth'
)
));
я играл с staticExpects()
также, но это, кажется, не очень влияет (я также не уверен, что мне нужно положить в staticExpects()
).
Что касается того, о чем я говорю: http://book.cakephp.org/2.0/en/development/testing.html#using-mocks-with-testaction - Я пробовал то, что вы предложили, и это делает не работает и не соответствует тому, что предлагается в Книге поваров в отношении Auth-> allow http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#making-actions- public –
Если я использую ваш код, я получаю следующую ошибку: «Непрямая модификация перегруженного свойства Mock_LeaguesController_173b7f97 :: $ Auth не имеет эффекта» –
Я обновил свой ответ. Попробуй это. Я всегда использовал свой оригинальный ответ, но, похоже, есть более чем один способ сделать это. В этом случае, какую версию Cake вы используете? – user1852176