Codeception:如何在Helper类中使用amLoggedAs

时间:2016-03-24 21:16:14

标签: laravel-5 codeception

我正在尝试为我的代码功能测试创建一个帮助类,这样可以更快地指定以超级用户身份登录。这是我的帮手:

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

但这似乎不起作用。当我在正常测试中使用声明$this->amLoggedAs(['username' => 'super', 'password'=> 'password']);时,它会按预期登录用户,但是当我使用$I->amSuperAdmin()时,它似乎无法执行此操作。没有错误;该方法在我生成的FunctionalTester类中可见。当我跟踪代码时,我可以看到在Laravel5 :: amLoggedAs方法中传递的身份验证,但是测试会被重定向到我的应用程序的登录页面,就好像身份验证失败一样。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你的助手是与Laravel5模块不同的对象, 你应该得到Laravel5模块的实例并调用它的方法:

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