2016-06-02 5 views
0

사용자는 계정이 활성화되어있을 때만 시스템에 로그인 할 수 있습니다. 나는 공장을 사용하여 사용자를 생성하고 (처음에는 상태가 '보류'로 설정 됨) 로그인 양식에 게시하려고합니다.Laravel에서 단위 테스트 사용자 로그인

여기에서 내가해야 할 주장이 너무 많지 않습니다. 필자는 이미이 기능을 수행하는 코드 (validateLogin 양식에 사용자 정의 유효성 검사기가 있습니다)를 작성한 후 '사용자 계정이 활성화되지 않았습니다'라는 줄에 따라 오류 메시지를 표시합니다.

어떻게 접근하면 좋을까요? 당신은이 작업을 수행 할 수

/** @test */ 
public function it_can_only_login_if_the_status_is_active() 
{ 
    $user = factory(User::class)->create(); 
    $this->post('login', ['email' => $user->email, 'password' => $user->password, '_token' => csrf_token()]); 
} 

답변

1

Laravel 테스트 방법에서 빌드 : 내가 지금까지 가지고

$user = factory(User::class)->create(); 

    $this->visit('/login') 
     ->type($user->email, 'email') 
     ->type($user->password, 'password') 
     ->press('Login') 
     ->see('your account is not active'); 

당신은 몇 가지 복잡한 기능을 테스트해야하는 경우 나 때문에과 함께 Codeception 라이브러리를 추천 할 수 있습니다 당신은 DB에 결과를 확인할 수 수용 및 기능 테스트를 만듭니다.

+0

감사합니다. phpunit이 http : // localhost/login에 게시하려고하는 것처럼 보이는 문제가 하나 있습니다. 어딘가에서 시험을 보지 못했습니까? – sjhuda

+0

** TestCase ** 파일에는 protected $ baseUrl = 'http : // localhost';가 있습니다. 도메인으로 변경할 수 있습니다. – TheFallen

+0

고마워, 아직 오류가 있지만 내 코드와 관련이 있다고 생각한다. 당신의 도움을 주셔서 감사합니다! – sjhuda