[Spring] JUnit

thingzoo·2023년 6월 23일
0

Spring

목록 보기
7/54
post-thumbnail

Test의 필요성

테스트는 코드가 의도된 대로 정확히 작동하는지 검증하는 절차

  • 개발 과정 중 예상치 못한 문제를 미리 발견할 수 있다.
  • 작성한 코드가 의도한 대로 작동하는지 검증할 수 있다.
  • 테스트 코드를 통해 동작하는 방식 및 결과 확인이 가능하다.

Spring에서는 '테스트 코드' 작성을 잘 할 수 있는 환경을 제공 해준다.

Testing

Blackbox Testing

소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법

  • 장점
    • 누구나 테스트 가능
  • 단점
    • 기능이 증가될 수록 테스트의 범위 증가
      • 시간이 갈수록 테스트하는 사람이 계속 늘어나야함
    • 테스트 하는 사람에 따라 테스트 퀄러티가 다를 수 있음
      → QA 직군이 있는 이유

Developer Test

개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성

  • 장점
    • 빠르고 정확한 테스트 가능 (예상 동작 VS 실제 동작)
    • 테스트 자동화 가능
      • 배포 절차 시 테스트 코드가 수행되어 동작 검증
    • 리팩토링이나 기능 추가를 할 때 더욱 편리
  • 단점
    • 개발 시간이 오래 걸림
    • 테스트 코드를 유지보수하는 비용

JUnit

자바 프로그래밍 언어 용 단위 테스트 프레임워크

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

테스트 파일 생성

  • 테스크하고 싶은 클래스명에 커서를 두고
  • 테스트 단축키 누르기
    • Windows : Ctrl + shift + t
    • Mac : + shift + t
  • 그러면 자동으로 경로를 맞춰서 테스트파일을 생성해줌!

테스트 코드 작성

  • JUnit은 테스트 실행 환경을 가지고 있기 때문에 따로 main() 메서드를 실행하거나 서버를 실행시키지 않아도 이렇게 각각의 메서드 혹은 기능별로 테스트 코드를 작성하여 실행시킬 수 있다.
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

class CalculatorTest {
    @Test
    @DisplayName("더하기 테스트")
    void test1() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "+", 2);
        System.out.println("result = " + result);

        Assertions.assertEquals(10, result);
    }

    @Test
    @DisplayName("나누기 테스트")
    void test2() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "/", 2);
        System.out.println("result = " + result);

        Assertions.assertEquals(4, result);
    }
}
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글