WARGAME Management System
작업기간
- 2008 ~ 2009
(솔루션 개발)
세부사항
- 해킹방어대회 운영을 위한 프로그램 개발에서 아이디어를 얻어 (2007, 2008 고교생 해킹/방어 챔피언십) 웹호스팅, 서버 등 다양한 환경에 설치하여 운용할 수 있도록 솔루션화 함
- 오픈소스로 배포 예정이었으나 개발이 중단됨,
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에서 ValidationException을 수동으로 던지기
Laravel에서는 FormRequest 또는 Validation 클래스를 이용하여 폼의 입력값을 검증하고 에러메시지를 사용자에게 전달할 수 있다.
이러한 ValidationException을 수동으로 throw 하고자 하는 경우 다음과 같이 이용한다.
$validator = Validator::make([], []);
$validator->errors()->add('필드명', '에러메시지');
throw new ValidationException($validator);
Recent Comments