Search
Duplicate

2. [클린 코드 with Java] 1단계 - 학습 테스트 실습

링크
점수
⭐️⭐️
완료일
2023/04/11
상태
완료
유형
인강

Set Collection에 대한 학습 테스트

다음과 같은 Set 데이터가 주어졌을 때 요구사항을 만족해야 한다.
public class SetTest { private Set<Integer> numbers; @BeforeEach void setUp() { numbers = new HashSet<>(); numbers.add(1); numbers.add(1); numbers.add(2); numbers.add(3); } // Test Case 구현 }
Java
복사

요구사항 1

Set의 size() 메소드를 활용해 Set의 크기를 확인하는 학습테스트를 구현한다.

요구사항 2

Set의 contains() 메소드를 활용해 1, 2, 3의 값이 존재하는지를 확인하는 학습테스트를 구현하려한다.
구현하고 보니 다음과 같이 중복 코드가 계속해서 발생한다.
JUnit의 ParameterizedTest를 활용해 중복 코드를 제거해 본다.
@Test void contains() { assertThat(numbers.contains(1)).isTrue(); assertThat(numbers.contains(2)).isTrue(); assertThat(numbers.contains(3)).isTrue(); }
Java
복사

코드 구성

작성코드

피드백

1) 다양한 API 를 활용
assertThat(size).isEqualTo(3);
Java
복사
다음과 같이 변경
assertThat(numbers).hasSize(3);
Java
복사
2) Boolean 타입을 직접 전달 받을 수 있다.
@DisplayName("부분적으로 값이 다른 것도 체크") @ParameterizedTest @CsvSource(value = {"1:true", "2:true", "3:true", "4:false","5:false" }, delimiter = ':') public void searchPartialValue(String input, String expected) throws Exception {
Java
복사
다음과 같이 변경
public void searchPartialValue(String input, String expected) throws Exception { public void searchPartialValue(String input, boolean expected) throws Exception {
Java
복사

후기

오늘은 간단하게, 테스트를 어떻게 진행하는지와 깃을 어떻게 사용하는지에 대해 간단한 설명을 들었다. TDD 함수를 위와 같은 형태로 조금씩 사용해 보았는데, 다양한 함수를 사용하지 않아서 그런지 아직은 어색한 부분이 있었다. 이를 인지하면서, 사용하지 않았던 부분도 계속해서 노력하여 사용해 보려고 한다. 저극적으로 습관이 되도록 사용해보자!
깃허브 링크
4092
pull
출처