0
는 내가 phpunit을 단위/기능 테스트에 새로운 오전 미들웨어는 테스트 컨트롤러 미들웨어는
public function handle(Request $request, Closure $next)
{
/**
* test if user is logged in User
*/
if(!$this->auth->check())
{
/**
* if user email register arbitrary User
*/
if(!$request->has('email'))
{
return back()
->with('error', "Please submit an email address!");
}
$user = $this->registerUser($request->input('email'));
/**
* [$user register a new user and set session]
* @var Request
*/
$request->session()->set('user', $user);
}
return $next($request);
}
에 대한 다음과 같은 방법은 그래서
public function testHasSession()
{
$faker = \Faker\Factory::create();
Session::shouldReceive('get')
->once()
->with('user');
$response = $this->middleware->handle(Request::create(route('brokerquotes.request.store'), 'POST', ['email'=> $faker->email]), function ($request) {
return 'OK';
});
$this->assertResponseOK();
}
시작했지만 작동하지 않습니다. 요청 세션이 설정되었고 컨트롤러 메소드가 미들웨어와 바인드 된 각 라우트가 트리거 될 때 호출되는 것을 어떻게 테스트 할 수 있습니까? 사용자 개체가 필드 email
을 가지고 있다고 가정 ...
public function testHasSession()
{
$faker = \Faker\Factory::create();
$email = $faker->email;
$this->post(route('brokerquotes.request.store'), ['email'=> $email]);
$this->assertResponseOk();
$this->assertEquals($email, session('user')->email);
}
: