-
문자열 테스트를 주제로 Juint5문법을 익혀보았다.
1. split 후 배열이 값을 포함하는지 검증하기
- contains() : 순서, 중복 상관없이 포함하기만 하면 됨
- containsExactly(): 순서 포함해서 정확하게 일치해야함
@Test void test1() { String[] str = "1,2".split(","); assertThat(str).contains("1"); // true assertThat(str).containsExactly("1", "2"); // "1"만 있거나 순서 바뀌어도 false }
2. substring() 메소드를 활용해 ()을 제거하고 "1,2"를 반환하는지 검증하기
- isEqualTo() : 대상의 내용자체를 비교
- isSameAs() : 주소값을 비교
@Test void test2() { String str = "(1,2)".substring(1,4); assertThat(str).isEqualTo("1,2"); // true }
3. @DisplayName을 활용해 테스트 메소드를 설명하여 의도를 드러낸다.
- 커밋 메시지로 쓸 수도 있고, 문서화, 팀원들과 소통하는데도 도움이 될 수 있다.
4. 예외 발생시키기 (assertThatThrownBy)
- String의 charAt() 메소드를 활용해 특정 위치의 문자를 가져올 때 위치 값을 벗어나면 StringIndexOutOfBoundsException을 발생시켜본다.
@Test @DisplayName("입력 값 범위 밖일 경우 assertThatThrownBy 확인") void test3() { String str = "abc"; assertThatThrownBy(() -> str.charAt(str.length())) .isInstanceOf(StringIndexOutOfBoundsException.class) .hasMessageContaining(String.valueOf(str.length())); }
이어서 계속..
'자바_스프링' 카테고리의 다른 글
spring boot 2.7.x에서의 swagger와 redisson 충돌 (0) 2023.03.15 재고시스템으로 알아보는 동시성이슈 해결방법 강의 노트 (0) 2023.03.15 Collection 및 Map인터페이스 간단요약 (0) 2023.02.17 TDD연습하기(2) (자바 플레이그라운드 with TDD, 클린 코드) (0) 2023.02.16 TDD란 (자바 플레이그라운드 with TDD, 클린 코드) (0) 2023.02.15 댓글