JUnit 을 이용한 단위 테스트

송영재·2022년 10월 30일

Spring

목록 보기
21/45
  • 3) 단위 테스트란?

    프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있게 해준다.

    출처: 단위 테스트 (위키백과)

    👉 버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 커지는 걸 알 수 있어요!

    1. Development: 개발
    2. Unit Tests (단위 테스트): 개발자 테스트
    3. QA Testing:
      • 블랙박스 테스팅
      • 주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅
    4. Production: 실 서비스 운영 환경
  • 4) JUnit 사용 설정

    💡 JUnit이란 자바 프로그래밍 언어용 단위 테스트 프레임워크입니다.

    • build.gradle 파일을 열어보면 JUnit 사용을 위한 환경설정이 이미 되어있습니다

      dependencies {
          testImplementation 'org.springframework.boot:spring-boot-starter-test'
      }
      
      test {
          useJUnitPlatform()
      }

  • 5) 테스트 파일 생성

    1. 파일 찾기 (단축키 익히면 좋음)

      • Windows: ctrl + shift + N
      • Mac: command + shifht + O
    2. 'product' 입력 후 "Product.java" 파일 선택

    3. "Product.java" 파일 내에서 마우스 오른쪽 버튼 클릭 > "Generate..." 클릭

    4. "Test..." 클릭

    5. 기본세팅 그대로 OK 눌러서 생성

  • 6) 테스트 코드 작성

    • [코드스니펫] model > ProductTest 파일 생성
      import com.sparta.springcore.dto.ProductRequestDto;
      import org.junit.jupiter.api.DisplayName;
      import org.junit.jupiter.api.Test;
      
      import static org.junit.jupiter.api.Assertions.*;
      
      class ProductTest {
          @Test
          @DisplayName("정상 케이스")
          void createProduct_Normal() {
              // given
              Long userId = 100L;
              String title = "오리온 꼬북칩 초코츄러스맛 160g";
              String image = "https://shopping-phinf.pstatic.net/main_2416122/24161228524.20200915151118.jpg";
              String link = "https://search.shopping.naver.com/gate.nhn?id=24161228524";
              int lprice = 2350;
      
              ProductRequestDto requestDto = new ProductRequestDto(
                      title,
                      image,
                      link,
                      lprice
              );
      
              // when
              Product product = new Product(requestDto, userId);
      
              // then
              assertNull(product.getId());
              assertEquals(userId, product.getUserId());
              assertEquals(title, product.getTitle());
              assertEquals(image, product.getImage());
              assertEquals(link, product.getLink());
              assertEquals(lprice, product.getLprice());
              assertEquals(0, product.getMyprice());
          }
      }
  • 7) 테스트 수행

    1. 함수 좌측의 실행 아이콘 클릭 후에 "Run.." 버튼 클릭

    2. 수행 결과

    3. 수행 결과가 한글로 표시되지 않는 경우

      [Intellij 메뉴] File - Settings - 검색창에 "gradle" 입력

0개의 댓글