ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • @DisplayName 어노테이션으로 UnitTest 가독성 높이기
    TDD 2022. 2. 27. 13:24
    728x90
        @Transactional
        @DisplayName(휴대전화 번호를 사용해 인증코드 생성한다")
        @Test
        void check_generateAuthCode_when_registerPhone() {
            // Given
            final String given_phone = "01012341234";
    
            // When
            final EntryUser entryUser = accountEntryService.generateAuthCodeToken(given_phone);
    
            // Then
            Assert.assertEquals(given_phone, entryUser.getPhone());
            Assert.assertNotNull(entryUser.getAuthenticationCode());
            Assert.assertFalse(entryUser.getAuthenticationCode().isEmpty());
            Assert.assertEquals(0, entryUser.getAuthCodeRetryCounter());
            Assert.assertNotNull(entryUser.getAuthCodeExpireDate());
        }

     

    한글을 이용해 부연 설명을 달아주면 좀 더 테스트케이스의 목적성 전달에 좋다고 생각합니다.

    아래 테스트 케이스는 Junit을 이용해 @DisplayName 사용해 테스트 케이스 설명을 달아둔 코드 입니다.

     

    저의 경우 Unit Test는 다음 3단계로 구성중입니다.

     

    1. Given

      유닛 테스트에서 주어진 데이터 입니다. 위 경우 휴대전화 번호 입니다.

     

    2. When

     테스트 할 서비스 코드 입니다.

     

    3. Then

     테스트 할 서비스 코드가 수행된디 기대되는 값을 검증 합니다. 위의 코드에서는 다음을 검증 합니다.

     휴대전화 번호로 6자리 인증코드를 전송하였으니 디비에는 다음이 갱신되어 있어야 합니다.

    1. entryUser(가입 진행중인 유저의 도메인) 가 생성됐고 해당 유저의 휴대전화 번호는 given에서 주어진 값과 동일

    2. 인증코드는 널 이 아니다

    3. 인증코드는 비어있지 않다. 여기서 지금은 6자리를 사용하고 있지만 추후 변경될수 있어 길이까지 체크하지 않았습니다.

    4. 재시도 횟수는 최초 0이다.

    5. 인증코드의 만료기간도 널 값이 아니다.

     

     

     

    728x90

    'TDD' 카테고리의 다른 글

    Intellij Codecoverage 확인하기  (0) 2022.02.27
Designed by Tistory.