chatAt() 메서드는 특정 위치의 문자를 가져올 때, 위치가 벗어나면 Exception(StringIndexOutOfBoundsException)을 발생시킨다.
이에 대한 학습 테스트를 구현한다. 아래는 JUnit에서 Exception별 제공하는 메서드
assertThatIllegalArgumentException()
assertThatIllegalStateException()
assertThatIOException()
assertThatNullPointerException()
@Test
@DisplayName("문자열의 최대 인덱스인 length() - 1 보다 큰 index를 통해 문자를 가져올때 발생하는 Exception 테스트")
void chatAt2() {
String actual = "abc";
assertThatExceptionOfType(StringIndexOutOfBoundsException.class)
.isThrownBy(() -> { actual.charAt(actual.length());})
.withMessageMatching(String.format("String index out of range: %s", actual.length()));
}
ParameterizedTest를 활용한 중복 코드 제거
Set의 contains() 메서드를 활용해 1,2,3 의 값이 존재하는지 확인하는 테스트
assertThat(numbers.contains(1)).isTrue();
assertThat(numbers.contains(2)).isTrue();
..
반복되는 코드로 인해서 ParameterizedTest 어노테이션을 활용한 중복 코드 제거