如何在Laravel 5中使用Codeception在单元测试中模拟身份验证用户?



我必须将我的单元测试转换为codeception。我需要使用本文中的 loginWithFakeUser(( 函数 - 如何在 Laravel 的单元测试中模拟身份验证用户?

public function loginWithFakeUser() {
$user = new User([
'id' => 1,
'name' => 'yish'
]);
$this->be($user);
}

当我的类已经扩展CodeceptionTestUnit时,如何使用$this->be()?我不知道我应该use ..什么或如何正确使用。将函数 loginWithFakeUser(( 放在其中:

use IlluminateFoundationTestingConcernsInteractsWithAuthentication;
use IlluminateFoundationTestingConcernsInteractsWithSession;
class AdminTest extends CodeceptionTestUnit {
use InteractsWithAuthentication;
use InteractsWithSession;
}

给我一个错误:

[错误异常] 未定义的属性:管理员测试::$app

我不确定如何设置$app变量。请帮助我。多谢!

我能够通过嘲笑Auth类来解决这个问题。

$oUser = new User([
'id' => 1,
'name' => 'yish'
]);
Auth::shouldReceive('check')->once()->andReturn(true);
Auth::shouldReceive('user')->once()->andReturn($oUser);

在我的实际代码中,它将其用作:

if(Auth::check() === true) {
$sName = Auth::user()->name;
}

相关内容

  • 没有找到相关文章

最新更新