Laravel에서 테스트를 작성하다 보면 특정 사용자로 로그인을 해야 할 때가 있다. Laravel에서 기본적으로 제공하는 be()
나 actingAs()
를 이용할 수도 있지만 다음과 같은 함수를 TestCase.php
에 작성해 두면 편리하게 활용할 수 있다.
abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
protected function signIn($user = null)
{
return $this->actingAs($user ?: factory('App\User')->create());
}
}
테스트에서 SignIn()
을 호출하면 자동으로 사용자를 생성하고 특정 사용자 인스턴스를 매개변수로 넘겨주면 해당 사용자로 로그인한다.