테스트 케이스를 작성할때 동작에 대한 테스트도 작성하지만 예외상황에 대해서 적절한 예외가 제대로 발생하는지도 테스트 하려면 예외에 대한 테스트도 해야 합니다.
JUnit 3에서는 좀 지저분하게 try-catch문으로 짜야 하는데 JUnit 4에서는 애노테이션을 사용해서 위처럼 간단히 작성할 수 있습니다. 테스트 메서드안에 로직을 넣고 애노테이션에서 발생할 예외클래스를 적어주면 해당 Exception이 발생하면 성공으로 나오게 됩니다.
예외에서 적절한 메시지를 던져주어서 메시지 까지 확인해야 하는 경우에는 위와같은 방법은 사용할 수 없습니다. JUnit 4.7부터는 아래와 같이 @Rule이라는 기능을 작용해서 이런 경우의 처리를 할 수 있도록 지원하고 있습니다.(@Rule은 여러가지 용도로 사용될 수 있는 듯 한데 처음 사용해 봐서 다른 부분은 나중에...)
@Rule 애노테이션을 사용해서 ExpectedException인스턴스를 만들어 준뒤 테스트 메서드에서 expect()로 확인하는 예외클래스를 적어주고expectMessage()를 통해서 예외에 담겨진 메세지를 확인할 수 있습니다.
Comments