웹사이트 검색

JUnit Assert 예외 - JUnit 5 및 JUnit 4


JUnit 어설션 메서드를 사용하여 예상되는 예외를 테스트할 수 있으며 throw된 예외를 반환하므로 예외 메시지를 어설션하는 데에도 사용할 수 있습니다.

JUnit 어설션 예외

다음은 JUnit 5에서 예외를 어설션하는 방법을 보여주는 간단한 예입니다.

String str = null;
assertThrows(NullPointerException.class, () -> str.length());

JUnit 5 어설션 예외 메시지

다음과 같이 정의된 클래스가 있다고 가정해 보겠습니다.

class Foo {
	void foo() throws Exception {
		throw new Exception("Exception Message");
	}
}

예외와 메시지를 테스트하는 방법을 살펴보겠습니다.

Foo foo = new Foo();
Exception exception = assertThrows(Exception.class, () -> foo.foo());
assertEquals("Exception Message", exception.getMessage());

JUnit 4 예상 예외

JUnit 4 @Test 주석 expected 속성을 사용하여 테스트 메서드에서 발생하는 예상 예외를 정의할 수 있습니다.

@Test(expected = Exception.class)
public void test() throws Exception {
	Foo foo = new Foo();
	foo.foo();
}

JUnit 4 어설트 예외 메시지

예외 메시지를 테스트하려면 ExpectedException 규칙을 사용해야 합니다. 다음은 예외 및 예외 메시지를 테스트하는 방법을 보여주는 완전한 예입니다.

package com.journaldev.junit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class JUnit4TestException {

	@Rule
	public ExpectedException thrown = ExpectedException.none();

	@Test
	public void test1() throws Exception {
		Foo foo = new Foo();
		thrown.expect(Exception.class);
		thrown.expectMessage("Exception Message");
		foo.foo();
	}
}

JUnit 5 및 JUnit 4에서 예상되는 예외 테스트에 대한 빠른 정리를 위한 것입니다.

GitHub Repository 프로젝트에서 더 많은 JUnit 5 예제를 확인할 수 있습니다.