JUnit 테스트에서 예외 어설션 실행
코드 실행 중에 특정 예외가 발생했다고 어설션하는 것은 JUnit의 일반적인 테스트 시나리오입니다. 이를 효과적으로 수행하기 위해 JUnit은 가독성을 높이고 테스트 프로세스를 단순화하는 여러 가지 방법을 제공합니다.
JUnit 5 및 4.13 어설션
JUnit 5 및 4.13에서 @Test 예상되는 속성이 포함된 주석을 사용할 수 있습니다. 직접:
@Test public void testIndexOutOfBoundsException() { ArrayList<Object> emptyList = new ArrayList<>(); assertThrows(IndexOutOfBoundsException.class, () -> emptyList.get(0)); }
AssertJ 및 Google Truth Assertions
AssertJ 및 Google Truth와 같은 외부 주장 라이브러리는 예외에 대한 추가 방법을 제공합니다. 주장:
AssertJ:
import static org.assertj.core.api.Assertions.*; @Test public void testIndexOutOfBoundsException() { ArrayList<Object> emptyList = new ArrayList<>(); assertThatThrownBy(() -> emptyList.get(0)) .isInstanceOf(IndexOutOfBoundsException.class); }
Google Truth:
import static com.google.common.truth.Truth.*; @Test public void testIndexOutOfBoundsException() { ArrayList<Object> emptyList = new ArrayList<>(); assertThatCode(() -> emptyList.get(0)).willThrow(IndexOutOfBoundsException.class); }
JUnit Pre-4.13 주장 (더 이상 사용되지 않음)
4.13 이전 JUnit 버전의 경우 더 번거로운 접근 방식은 try-catch 블록 내에서 예외를 수동으로 확인하는 것이었습니다.
@Test public void testIndexOutOfBoundsException() { boolean thrown = false; ArrayList<Object> emptyList = new ArrayList<>(); try { emptyList.get(0); // Intentionally triggers an exception } catch (IndexOutOfBoundsException e) { thrown = true; } assertTrue(thrown); }
이 접근 방식은 더 이상 사용되지 않습니다. 앞서 언급한 방법보다 덜 관용적입니다. 자세한 내용은 [JUnit 테스트-FAQ](https://junit.org/junit4/faq.html)를 참조하세요.
위 내용은 JUnit 테스트에서 예외를 효과적으로 어설션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!