성실한 사람이 되자

성실하게 글쓰자

This is spear

JAVA_SPRING/JAVA

String 클래스에 대한 학습 테스트

Imaspear 2022. 2. 5. 20:13
728x90

요구사항 1

  • "1,2"을 ,로 split 했을 때 1과 2로 잘 분리되는지 확인하는 학습 테스트를 구현한다.
  • "1"을 ,로 split 했을 때 1만을 포함하는 배열이 반환되는지에 대한 학습 테스트를 구현한다.

“1,2”를 1과 2로 분리하는 학습 테스트

@Test
void test1_1() {
    String[] strings = "1,2".split(",");
    assertThat(strings).contains("1", "2");
}

“1”을 “,”로 분리했을 때, 1만을 포함하는 배열이 반환하는지 학습하는 테스트

@Test
void test1_2() {
    String[] strings = "1".split(",");
    assertThat(strings).containsExactly("1");
}

요구사항 2

"(1,2)" 값이 주어졌을 때 String의 substring() 메소드를 활용해 ()을 제거하고 "1,2"를 반환하도록 구현한다.

“(1,2)”을 “(”, ”)”을 분리해 “1,2”로 반환하도록 구현

@Test
void test2() {
    String strings = "(1,2)";
    String substring = strings.substring(1, strings.length()-1);
    System.out.println(substring);
}

요구사항 3

"abc" 값이 주어졌을 때 String의 charAt() 메소드를 활용해 특정 위치의 문자를 가져오는 학습 테스트를 구현한다.
String의 charAt() 메소드를 활용해 특정 위치의 문자를 가져올 때 위치 값을 벗어나면 StringIndexOutOfBoundsException이 발생하는 부분에 대한 학습 테스트를 구현한다.
JUnit의 @DisplayName을 활용해 테스트 메소드의 의도를 드러낸다.

charAt() 메소드를 이용해 특정 위치의 문자 가져오는 테스트

@Test
@DisplayName("요구사항 3 테스트 구현")
void test3() {
    String strings = "abc";
    int index = 10;
    assertThatThrownBy(() -> {
        strings.charAt(index);
    }).isInstanceOf(StringIndexOutOfBoundsException.class)
            .hasMessageContaining("String index out of range: %d", index);
}