728x90
본 글은 assertThrows 메서드를 공부한 지식을 정리한 글입니다.
서론
JPA에서 @Vesion 어노테이션을 사용하여 낙관적 락을 구현하고, 낙관적 락을 통한 동시성 제어를 확인했습니다.
Test클래스에서 assertThrows()메서드로 예외를 손쉽게 처리 했는데, 코드 중 assertThrows() 메서드에 대해서 정리하고자 합니다.
assertThorws란❓
assertThrows()는 JUnit 5의 Assertions 클래스에서 제공하는 메서드로, 주어진 코드 블록이 특정 예외를 발생시키는지를 검증하는 데 사용됩니다.
assertThrows() 메서드를 사용하면 예외 발생 여부를 간편하게 테스트할 수 있으며, 코드의 신뢰성을 높이는 데 도움이 됩니다.
기본 사용법
assertThrows() 메서드는 두 개의 매개변수를 받습니다.
- 첫 번째 매개변수
- 예상되는 예외 클래스 (e.g., IllegalArgumentException.class).
- 두 번째 매개변수
- 예외를 발생시킬 코드 블록 (람다 표현식).
예제 코드
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
public class ExampleTest {
@Test
void testException() {
// 예외를 발생시키는 코드 블록을 전달합니다.
assertThrows(IllegalArgumentException.class, () -> {
throw new IllegalArgumentException("Invalid argument!");
});
}
}
위 코드에서 assertThrows()는 IllegalArgumentException이 발생하는지 테스트합니다. 예외가 발생하지 않거나 다른 예외가 발생하면 테스트는 실패합니다.
assertThorws의 장점
- 명확한 테스트 의도
- 예외 발생 여부를 명확히 테스트할 수 있습니다.
- 코드 가독성 향상
- 예외 테스트가 간결하고 읽기 쉬워집니다.
- 정확한 검증
- 예외의 세부 사항까지 검증하여 더 정확한 테스트가 가능합니다.
JUnit 5의 assertThrows() 메서드는 예외 처리를 효과적으로 테스트할 수 있는 유용한 도구입니다.
간단하게 예외가 발생하는지 확인하고, 발생한 예외의 세부 사항까지 검증할 수 있습니다. 이를 통해 테스트 코드의 신뢰성을 높이고, 더 견고한 애플리케이션을 개발할 수 있습니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.08.24 - 외래 키 주인❗️ (1) | 2024.08.24 |
---|---|
[TIL, 일일회고] 2024.08.23 - JPA Entity 클래스 간의 참조: 의존성 주입이 아닌 FK 관계를 위한 설계 (0) | 2024.08.23 |
[TIL, 일일 회고] 2024.08.21 - 비관적 락(Pessimistic Lock)으로도 업데이트 손실이 발생하는 이유 (0) | 2024.08.21 |
[TIL, 일일 회고] 2024.08.20 - Referer헤더란❓ (0) | 2024.08.20 |
[TIL, 일일 회고] 2024.08.19 - 출처란 무엇일까❓ (0) | 2024.08.19 |