업데이트 : JUnit5의 예외 테스트 기능이 개선되었습니다.assertThrows
.
다음 예제는 다음과 같습니다. Junit 5 사용자 안내서
@Test
void exceptionTesting() {
Throwable exception = assertThrows(IllegalArgumentException.class, () ->
{
throw new IllegalArgumentException("a message");
});
assertEquals("a message", exception.getMessage());
}
JUnit 4를 사용한 원래 답변
예외가 발생했는지 테스트하는 방법에는 여러 가지가 있습니다. 나는 또한 내 게시물의 옵션 아래 논의했다 JUnit을 가진 좋은 단위 테스트를 작성하는 방법
expected
파라미터를 설정합니다 @Test(expected = FileNotFoundException.class)
.
@Test(expected = FileNotFoundException.class)
public void testReadFile() {
myClass.readFile("test.txt");
}
사용 try
catch
public void testReadFile() {
try {
myClass.readFile("test.txt");
fail("Expected a FileNotFoundException to be thrown");
} catch (FileNotFoundException e) {
assertThat(e.getMessage(), is("The file test.txt does not exist!"));
}
}
ExpectedException
규칙을 사용한 테스트 .
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testReadFile() throws FileNotFoundException {
thrown.expect(FileNotFoundException.class);
thrown.expectMessage(startsWith("The file test.txt"));
myClass.readFile("test.txt");
}
예외 테스트 및 bad.robot-예상 예외 JUnit 규칙 에 대해서는 JUnit4 위키 에서 예외 테스트에 대해 자세히 읽을 수 있습니다.
org.mockito.Mockito.verify
예외가 발생하기 전에 특정 상황이 발생했는지 확인하기 위해 종종 로거 서비스가 올바른 매개 변수 로 호출 되도록 다양한 매개 변수 를 호출하려고합니다 .