如何在laravel 5.4中编写会话变量的单元测试用例

时间:2017-06-14 08:23:30

标签: laravel-5 phpunit

您好我有一个测试用例,它将调用一个路由,如果会话将设置,它将返回一些数据。 这是我的测试用例

class TestControllerTest extends TestCase
{
    // ...

    public function testResponseOfJson()
    {
        $response = $this->call('GET', 'profile/test');
        $this->assertEmpty( !$response );
    }

    // ...
}

这是我的控制器

Class TestController{
   public function sendResponse(Request $request){
     $this->data['user_id'] = $this->request->session()->get('userdata.userid'); 
if($this->data['userid']){
   return data;
}
else{ 
   return Failed;
     }
   }
}

我的routes.php

Route::get('profile/test',['uses'=>'TestController@sendResponse']);

如何设置会话变量userdata.userid并在进行单元测试时获取。

1 个答案:

答案 0 :(得分:1)

请查看this页。

Laravel为您提供了使用withSession链方法和其他功能的功能,这些功能将帮助您测试会话需要或需要以某种方式进行操作的位置。

示例:

<?php

class ExampleTest extends TestCase
{
    public function testApplication()
    {
        $response = $this->withSession(['foo' => 'bar'])
                         ->get('/');
    }
}