Я разрабатываю приложение в Cake 2.2, и в настоящее время нахожу некоторые модульные тесты. Тесты модели работают нормально, у меня есть некоторые проблемы с проверками контроллера в целом.Cakephp 2.0 mock auth
Ситуации: - большинство действий требует входа пользователя - есть пользовательские компоненты и библиотеки поставщиков - У меня есть светильники для всех таблиц
Проблемы: - Многие действия используют «$ this- -> Auth-> пользователя()»метод, чтобы получить пользовательские данные - Если я написать тест для этого действия, пользователь-данные (очевидно) не несуществующие
Моего (не работает) решения: - Я попытался высмеять компонент auth, чтобы он содержал пользовательский метод и всегда возвращал статический ar луч, содержащий пользовательские данные, но он возвращает нуль, вот код:
$Days = $this->generate('Days', array('components' => 'Auth'));
$Days->Auth->expects($this->once())->method('user')->will($this->returnValue(array(..userdata etc.)));
$result = $this->testAction('/days/settings');
Он просто продолжает говорить, что метод не был вызван (Altough метод установки внутри контроллера дней называет это точно один раз). Что не так с макетом? Hmmm ..
Любая помощь будет оценена!
-edit- код метода, который проходит испытания:
public function myDays()
{
$user = $this->Auth->user();
$days = $this->Day->find('all', array('conditions' => array('user_id' => $user['id'], 'active' => 1)));
$this->set('days', $days);
}
Вы вызываете 'testAction' более одного раза в своем тесте? Это ваш тестовый метод? –
Привет, нет, только один раз, это полный код в этом действии на данный момент, так как он не работает. Я не написал для него другого кода тестирования. –
Также вы можете включить метод, который вы тестируете, помогите узнать, что происходит. –