Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 스프링
- GitHub
- MySQL
- 2817
- Java
- 이것이자바다
- 이벤트루프
- 헤드퍼스트 디자인패턴
- 1436
- cicd
- vue-router
- pinia
- 이것이안드로이드다
- Junit5
- VueDevTools
- 한빛미디어
- 백준
- 러닝GO
- JavaScript
- 자바스크립트
- 구글 엔지니어는 이렇게 일한다
- AWS 비용 최적화 바이블
- HTTP
- Git
- 도메인 주도 개발 시작하기
- 혼공컴운
- 네트워크
- 알고리즘
- Vue
- WebTestClient
Archives
- Today
- Total
이시안 개발 블로그
JUnit5로 예외처리 테스트하기 본문
✨ 왜?
@Test(expected = IllegalStateException.class)
JUnit4에서는 @Test
어노테이션에 expected
속성으로 예외를 잡도록 처리할 수 있었습니다.
하지만 JUnit5에서는 Assertions
에 새롭게 추가된 assertThrows()
를 통해서 쉽게 테스트를 작성할 수 있게 되었습니다.
📃 과정
@Test
public void 중복_회원_예외() throws Exception {
// given
Member member1 = new Member();
member1.setName("hello");
Member member2 = new Member();
member2.setName("hello");
// when
memberService.join(member1);
// then
assertThrows(IllegalStateException.class, () -> {
memberService.join(member2);
});
}
join()
메서드는 회원을 등록할 때 회원 이름이 중복된다면 IllegalStateException
을 던지도록 작성되어 있습니다.
때문에 예외가 제대로 발생해야 제대로 작성한 테스트가 되는 데 Assertions.assertThrows()
메서드를 사용해서 쉽게 예외를 처리할 수 있습니다.
Assertions.assertThrows()
- JUnit5에서 제공하는 내장 메서드
assertThrows(Class<T> expectedType, Executable executable)
- 첫번째 인자에는 설정한 예외의 Class 타입, 두번째 인자에는 예외를 던질 메서드, 실행문이 들어갑니다.
☄️ 결과
join()
메서드가 던진 IllegalStateException
예외를 제대로 받아서 마음이 편한 초록불이 들어온 모습입니다.
'🌱Spring' 카테고리의 다른 글
스프링부트 + MySQL 연동하기 (0) | 2021.12.20 |
---|
Comments