프로그래밍 언어/JAVA

JUnit 4 테스트에서 특정 예외가 발생할 때

Rateye 2021. 6. 2. 10:59
728x90
반응형
질문 : JUnit 4 테스트에서 특정 예외가 발생한다고 어떻게 주장합니까?

일부 코드에서 예외가 발생하는지 테스트하기 위해 JUnit4를 관용적으로 어떻게 사용할 수 있습니까?

확실히 다음과 같이 할 수 있습니다.

@Test
public void testFooThrowsIndexOutOfBoundsException() {
  boolean thrown = false;

  try {
    foo.doStuff();
  } catch (IndexOutOfBoundsException e) {
    thrown = true;
  }

  assertTrue(thrown);
}

나는 훨씬 덜 미봉책 훨씬 더 - 더 - 정신 상황의 이러한 종류에 대한의 JUnit입니다 주석 또는 Assert.xyz 또는 뭔가가 있다는 것을 기억합니다.

답변

JUnit 버전과 사용하는 어설 션 라이브러리에 따라 다릅니다.

JUnit <= 4.12 에 대한 원래 답변은 다음과 같습니다.

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {

    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);

}

대답 https://stackoverflow.com/a/31826781/2986984 에는 JUnit <= 4.12에 대한 더 많은 옵션이 있습니다.

참조 :

출처 : https://stackoverflow.com/questions/156503/how-do-you-assert-that-a-certain-exception-is-thrown-in-junit-4-tests
728x90
반응형