我在使用phpunit测试一个基于laravel5.4的类,该类使用session来获取数据。当应用程序正在运行时直接访问session("session('consumer')")可以正常获取到值,但是当我尝试测试使用session的函数时,会出现以下错误:
ReflectionException: 类 session 不存在
请问有人能指导如何在测试期间设置session数据吗?
我已经尝试使用:$this->session()->put([$array_value]) ,但是会得到“class session does not exist on class_im_testing”的错误。
谢谢您的帮助!
ReflectionException: 类 session 不存在
请问有人能指导如何在测试期间设置session数据吗?
我已经尝试使用:$this->session()->put([$array_value]) ,但是会得到“class session does not exist on class_im_testing”的错误。
谢谢您的帮助!
public function test_get_user()
{
$mockUser = [
'id' => 'cf442564-d076-4198-beb5-edef5aa51a69',
'name' => 'John Doe',
'fname' => 'John',
'lname' => 'Doe',
];
session->put('consumer', [
'id' => 'cf442564-d076-4198-beb5-edef5aa51a69',
'name' => 'John Doe',
'fname' => 'John',
'lname' => 'Doe',
]);
$user = $this->repo->getUser();
$this->assertEqual($user, $mockUser);
}
public function getUser()
{
$user = new User(session('consumer'));
return $user;
}
$this->withSession([...])
。 - apokryfosTestCase
类,而不是默认的 PhpUnit 测试用例类。 - apokryfosTestCase
,它有很多额外的方法,还包括许多traits。你的withSession
方法实际上来自InteractsWithSession
,这是其中一个包含的traits。 - apokryfos