예외를 발생시키고 단언하는 방법에 대해 정리했다.
@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);
}