gpt4 book ai didi

php - 单元测试时授权用户的id为空

转载 作者:可可西里 更新时间:2023-11-01 01:01:31 26 4
gpt4 key购买 nike

我在 Laravel 4 中遇到的问题:

Controller 中的一个简单方法:

public function getHello()
{
if( !\Auth::check() ){
return Redirect::route('user.login');
}

//this is working fine just in the web, not for phpunit in the console
echo \Auth::id();
//this is working for both
echo \Auth::user()->id;
}

和一个简单的测试用例:

public function testHello()
{
$user = User::find(1);
$this->be($user);
$this->action('GET', 'HomeController@getHello');
}

我只是不明白为什么“Auth::id()”在测试期间返回 null/空字符串。

最佳答案

我不确定 $this->be() 到底做了什么,但我假设它创建了一个 Session 并以 $ 登录用户

如果不是,那就是问题所在。 session 在 Web 请求期间自动创建,但在单元测试期间不会。

然而,这个测试实际上并没有测试任何东西。您可能想要重构一下以揭示实际发生的情况。

public function testHello()
{
Session::start();
$user = User::find(1);
Auth::login($user);
$response = $this->action('GET', 'HomeController@getHello');
$this->assertEquals($user->id, $response->getContent());
}

关于php - 单元测试时授权用户的id为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24201632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com