2016-10-25 5 views
4

나머지 리소스 컨트롤러의 레지스터 페이지를 테스트 할 내 laravel 5.2 프로젝트에 대한 테스트를 만들려고합니다. 모든 테스트의 정확한 입력과 함께 수동으로 테스트 할 때는 작동하지만, 테스트 할 때 phpunit으로 테스트하면 오류 페이지로 리디렉션되어 내 페이지 어설 션이 실패하게됩니다. 그러나 오류는 어설 션의 오류를 표시하며 오류 페이지의 오류는 표시하지 않으므로 테스트가 실패한 이유를 표시하지 않습니다. 이걸 어떻게 볼 수 있니?Laravel unit testing complete error

테스트 케이스 :

class registerTest extends TestCase 
{ 
use WithoutMiddleware; 

public function testRegisterCompanyCorrectly() 
{ 
    $this->actAsAdmin(); 
    $this->visit('/Companies/create') 
     ->type('testCompany', 'CName') 
     ->type('www.testCompany.com', 'CUrl') 
     ->type('[email protected]', 'Mail') 
     ->type('John Doe', 'Name') 
     ->type('Keith Richards', 'Password') 
     ->type('Keith Richards', 'CPassword') 
     ->press('Registreren') 
     ->seePageIs('/Companies/3') 
     ; 
} 

private function actAsAdmin() 
{ 
    $user = User::find(1); 
    $this->actingAs($user); 
} 
}' 

phpunit을 오류 : app/Exceptions/Handler.phpIlluminate\Foundation\Validation\ValidationException에 대한 오류보고를 활성화하는 것입니다 오류를 조사하기

There was 1 failure: 

1) registerTest::testRegisterCompanyCorrectly 
Did not land on expected page [http://localhost/Companies/3]. 

Failed asserting that two strings are equal. 
--- Expected 
+++ Actual 
@@ @@ 
-'http://localhost/Companies/3' 
+'http://localhost/Companies' 

C:\Users\Stefan\Documents\producten\Applicatie\vendor\laravel\framework\src\Illuminate\Foundation\Testing\Concerns\InteractsWithPages.php:170 
C:\Users\Stefan\Documents\producten\Applicatie\tests\registerTest.php:34 
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:176 
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:129 

FAILURES! 
Tests: 5, Assertions: 14, Failures: 1. 
+0

대신/회사/3에 상륙하고/회사에 상륙 할 것으로 예상됩니다. 새 회사를 등록 할 때 새로 생성 된 리소스의 실제 페이지에 착륙 하시겠습니까? 내가 틀렸다면 나를 정정하십시오.하지만 새로 생성 된 리소스마다 아마도 바뀔 것이기 때문에 seePageIs 메소드에 하드 코딩 된 숫자를 전달하는 것이 이상하게 보입니다. –

+0

기본 등록 오류 (잘못된 값 등)가있는 경우 자원 컨트롤러가 작성 페이지로 돌아갑니다. 성공하면 새 회사 (/ Companies/{id})의 페이지로 이동합니다. 그러나 페이지를 만드는 동안 laravel에 오류가 발생하면 오류 메시지가있는/Companies /로 리디렉션되는 것으로 나타났습니다. 문제는 수동으로 재생산 할 수 없거나 문제를 찾을 수없는 오류를 표시하지 않는 것입니다. 또한 현재 데이터베이스 마이그레이션과 시드를 사용하여 테스트를 준비하지만이 작업이 일단 리팩토링되고 하드 코드 된 값이 없는지 확인하려고합니다. – Stefan

+0

필자는 phpunit에 익숙하지 않지만 --verbose 또는 --debug를 사용하여 실행하면 추가 정보를 얻을 수 있는지 확인할 수 있습니다. –

답변

0

한 가지 방법.

protected $dontReport = [ 
    // ValidationException::class, 
]; 

테스트를 다시 실행하면 로그 파일에 스택 추적이 있어야합니다.