
예외를 발생시키고 단언하는 방법에 대해 정리했다.
@Test(expected=SomeException.class)java.lang.AssertionError 발생하고 test fail위 annotation만으로는 발생한 예외의 구체적인 상태를 확인하기 번거롭다.
따라서 우리는 ExpectedException과 @Rule을 활용하여 구체적으로 예외를 테스트 해야 한다.
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void exceptionRule() {
thrown.expect(InsufficientFundsException.class);
thrown.expectMessage("balance only 0");
account.withdraw(100);
}