예외 타입만 확인 가능
@Test(expected = UsernameNotFoundException.class)
public void findByUsernameFail() {
String username = "[email protected]";
accountService.loadUserByUsername(username);
}
예외 타입과 메시지 확인 가능
하지만 코드가 다소 복잡
@Test
public void findByUsernameFail() {
String username = "[email protected]";
try {
accountService.loadUserByUsername(username);
fail("supposed to be failed");
} catch (UsernameNotFoundException e) {
assertThat(e.getMessage()).contains(username);
}
}
코드는 간결하면서 예외 타입과 메시지 모두 확인 가능
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Test
public void findByUsernameFail() {
String username = "[email protected]";
expectedException.expect(UsernameNotFoundException.class);
expectedException.expectMessage(Matchers.containsString(username));
accountService.loadUserByUsername(username);
}
항상 위에 적어 먼저 예측이 되어야 한다.