/
PHPUnit 에서 예외 테스트(Exception Test) 하기
PHPUnit 에서 예외 테스트(Exception Test) 하기
단위 테스트 작성시 특정 Exception 이 발생해야 하는 경우가 있습니다.
예로 입력값이 유효한 전화 번호인지 검증하는 validator 를 만들었다면 유효하지 않은 입력값일 경우 테스트 코드는 \Illuminate\Validation\ValidationException 예외가 발생하지 않으면 단위테스트가 실패한 것으로 처리해야 합니다.
이런 예외를 테스트하기 위해 PHPUnit 은 2가지 방법을 제공합니다.
@expectedException 사용
예전 버전의 PHPUnit 은 이를 위해 다음과 같이 @expectedException 을 테스트 함수의 PHPDoc 에 기술해 주면 됐지만 deprecated 됐고 PHPUnit 9 에서는 제거될 예정입니다.
<?php class ValidationTest extends TestCase { /** * @test * @expectedException \Illuminate\Validation\ValidationException */ public function thrown_validation_exception_when_input_invalid_phone_number() { $invalid_phone_number = [ 'invalid_phone_number' => '987654321', ]; $validator = Validator::make($invalid_phone_number, [ 'invalid_phone_number' => [ 'required', 'max:15', new CellPhoneRule(), ], ]); $validator->validate(); $this->assertTrue(true); }
expectException method 사용
최신 버전의 PHPUnit 은 expectException(string $exception) 메서드 사용을 권장하고 있습니다. 테스트 코드 시작점에 호출해 주고 테스트 코드를 아래에 기술해 주면 됩니다.
<?php class ValidationTest extends TestCase { /** * @test */ public function thrown_validation_exception_when_input_invalid_phone_number() { // 발생할 Exception 설정 $this->expectException(\Illuminate\Validation\ValidationException::class); $invalid_phone_number = [ 'invalid_phone_number' => '987654321', ];
Ref
, multiple selections available,
Related content
2025-02-11 KT 보안팀 AGP 문의
2025-02-11 KT 보안팀 AGP 문의
More like this
MySQL 데이타베이스와 사용자 계정 생성하기
MySQL 데이타베이스와 사용자 계정 생성하기
More like this
Confluence/Jira Mobile App 은 허용하고 Mobile browser 는 차단하기
Confluence/Jira Mobile App 은 허용하고 Mobile browser 는 차단하기
More like this
Atlassian Guard 를 사용한 프로비저닝 및 거버넌스 가이드
Atlassian Guard 를 사용한 프로비저닝 및 거버넌스 가이드
More like this
HM : Atlassian Cloud 사용자 프로비저닝 및 거버넌스 가이드
HM : Atlassian Cloud 사용자 프로비저닝 및 거버넌스 가이드
More like this
Atlassian Guard(Access) 인증 정책 설정 및 Non billable policy 적용하기
Atlassian Guard(Access) 인증 정책 설정 및 Non billable policy 적용하기
More like this