더북(TheBook)

ExpectedException 규칙을 사용하려면 테스트 클래스에 ExpectedException 인스턴스를 public으로 선언하고 @Rule 애너테이션을 부착해야 합니다(다음 클래스의 04행).

iloveyouboss_13/test/scratch/AssertTest.java

01     import org.junit.rules.*; 
02    // ... 
03        @Rule 
04        public ExpectedException thrown = ExpectedException.none(); 
05      
06        @Test 
07        public void exceptionRule() { 
08            thrown.expect(InsufficientFundsException.class); 
09            thrown.expectMessage("balance only 0"); 
10      
11            account.withdraw(100); 
12        }

 

테스트의 셋업 단계에서 나머지 테스트를 실행할 때 발생할 수 있는 일을 규칙에 알립니다. thrown 규칙 인스턴스는 InsufficientFundsException 예외가 발생함을 알려 줍니다(08행).

또 예외 객체에 적절한 메시지가 포함되어 있는지 검사하길 원하여 thrown 규칙에 다른 기대 사항을 지정했습니다(09행). 관심이 있다면 규칙 객체가 예외에 원인 객체도 포함되는 것을 기대하게 할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.