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.php
에 Illuminate\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.
대신/회사/3에 상륙하고/회사에 상륙 할 것으로 예상됩니다. 새 회사를 등록 할 때 새로 생성 된 리소스의 실제 페이지에 착륙 하시겠습니까? 내가 틀렸다면 나를 정정하십시오.하지만 새로 생성 된 리소스마다 아마도 바뀔 것이기 때문에 seePageIs 메소드에 하드 코딩 된 숫자를 전달하는 것이 이상하게 보입니다. –
기본 등록 오류 (잘못된 값 등)가있는 경우 자원 컨트롤러가 작성 페이지로 돌아갑니다. 성공하면 새 회사 (/ Companies/{id})의 페이지로 이동합니다. 그러나 페이지를 만드는 동안 laravel에 오류가 발생하면 오류 메시지가있는/Companies /로 리디렉션되는 것으로 나타났습니다. 문제는 수동으로 재생산 할 수 없거나 문제를 찾을 수없는 오류를 표시하지 않는 것입니다. 또한 현재 데이터베이스 마이그레이션과 시드를 사용하여 테스트를 준비하지만이 작업이 일단 리팩토링되고 하드 코드 된 값이 없는지 확인하려고합니다. – Stefan
필자는 phpunit에 익숙하지 않지만 --verbose 또는 --debug를 사용하여 실행하면 추가 정보를 얻을 수 있는지 확인할 수 있습니다. –