2014-03-19 2 views
0

PHPUnit을 사용하여 Laravel의 단위 테스트를 실행하려고합니다.Laravel의 호출 방법이 필터를 우회합니다.

함수에 대한 내 호출이 컨트롤러에 전달 된 것처럼 보이지만 필터가 무시됩니다. 필터는 사용자 검증, 세션 토큰 등을하기 위해 사용됩니다. 호출이 컨트롤러로 직접 이동하여 필터를 잊어 버린 것처럼 보입니다.

public function testBasicExample(){ 

     $response = $this->call('GET', 'URL_Here', array('param_1' => 'value_1', 'param_2' => 'value_2')); 

     echo $response->getContent(); /**This should not be returning true if values are wrong and it is **/ 

     $this->assertTrue($this->client->getResponse()->isOk()); 

}

어떤 아이디어가?

답변

0

Laravel 설명서에 따르면 테스트 환경에서는 경로 필터가 비활성화되어 있습니다. 당신이 그들을 사용하려면 다음 전화를 사용할 수 있습니다

Route::enableFilters(); 

당신이 here에 대한 자세한 내용을보실 수 있습니다. 해당 장의 끝에있는 참고 블록이 사용자 질문에 대한 대답입니다.

+0

요청 개체도 사용할 수 없게되는지 알고 계십니까? – Dynelight

+0

그렇게해서는 안됩니다. 이 문제가 발생합니까? 실행중인 콘솔 환경에 맞도록 Request 객체를 설정하는 것만으로도 – Stidges

+0

입니다. 브라우저에서 요청을 보내면 헤더에 액세스 할 수 있지만 PHPUnit을 사용할 때는 이동하지 않습니다. – Dynelight

관련 문제