2016-03-24 1 views
-1

Я пытаюсь создать класс-помощник для своих функциональных тестов кода, что ускоряет определение входа в систему как суперпользователя. Вот мой помощник:Codeception: Как использовать amLoggedAs в классе помощника

class Laravel5Helper extends Laravel5 { 
    public function amSuperAdmin() { 
     $this->amLoggedAs(['username' => 'super', 'password'=> 'password']); 
    } 
} 

Но это не работает. Когда я использую объявление $this->amLoggedAs(['username' => 'super', 'password'=> 'password']); в обычном тесте, он регистрируется пользователем, как и ожидалось, но когда я использую $I->amSuperAdmin(), похоже, что это не так. Ошибок нет; метод отображается в моем сгенерированном классе FunctionalTester. Когда я отслеживаю код, я могу видеть аутентификацию, проходящую в методе Laravel5 :: amLoggedAs, но тест перенаправляется на страницу входа моего приложения, как будто аутентификация завершилась неудачно.

Что я делаю неправильно?

ответ

0

Ваш помощником является другим объектом, чем модуль Laravel5, вы должны получить экземпляр модуля Laravel5 и вызвать его метод:

class Laravel5Helper extends \Codeception\Module { 
    public function amSuperAdmin() { 
     $this->getModule('Laravel5')->amLoggedAs(['username' => 'super', 'password'=> 'password']); 
    } 
} 
Смежные вопросы