WARGAME Management System

 

 

작업기간

  • 2008 ~ 2009
    (솔루션 개발)

 

세부사항

  • 해킹방어대회 운영을 위한 프로그램 개발에서 아이디어를 얻어 (2007, 2008 고교생 해킹/방어 챔피언십) 웹호스팅, 서버 등 다양한 환경에 설치하여 운용할 수 있도록 솔루션화 함
  • 오픈소스로 배포 예정이었으나 개발이 중단됨,

Develop Legacy PHP Portfolio WMS

Laravel Dusk에서 로그인 테스트 시 이전 세션이 남아있는 문제 해결하기

Laravel Dusk에서 로그인 테스트를 하고자 할 경우 다음과 같이 코드를 작성 할 수 있다.

 

/** @test */
public function 로그인한다()
{
    $this->browse(function (Browser $browser) {
        $browser->visit(route('login'))
            ->type('email', 'myemail@address.com')
            ->type('password', 'password')
            ->press('Login')
            ->assertRouteIs('home');
    });
}

/** @test */
public function 사용자_입력값이_유효하지_않으면_오류난다()
{
    $this->browse(function (Browser $browser) {
        $browser->visit(route('login'))
            ->type('email', 'test@testdomain.com')
            ->type('password', '123456')
            ->press('Login')
            ->assertSee(trans('auth.failed'));
    });
}

 

첫번째 로그인한다()는 정상적으로 작동하지만, 사용자_입력값이_유효하지_않으면_오류난다() 메서드는 오류가 발생한다. 이전 로그인 세션이 남아있기 때문이다.

이를 해결하기 위해서는 DuskTestCase.php에 다음과 같이 setUp() 메서드를 오버라이딩하고, 쿠키 삭제 코드를 추가한다.

 

protected function setUp()
{
    parent::setUp();
    foreach (static::$browsers as $browser) {
        $browser->driver->manage()->deleteAllCookies();
    }
}

 

Laravel Laravel Dusk Testing

Laravel에서 ValidationException을 수동으로 던지기

Laravel에서는 FormRequest 또는 Validation 클래스를 이용하여 폼의 입력값을 검증하고 에러메시지를 사용자에게 전달할 수 있다.

이러한 ValidationException을 수동으로 throw 하고자 하는 경우 다음과 같이 이용한다.

 

$validator = Validator::make([], []);
$validator->errors()->add('필드명', '에러메시지');
throw new ValidationException($validator);

 

Develop Laravel Validation