[Spring] Junit5 단위 테스트 작성

2022. 7. 13. 13:46· Spring Boot
목차
  1. ⛅️ 단위 테스트
  2. ⛅️ @Test, @DisplayName
  3. ⛅️ @BeforeAll, @BeforeEach
  4. ⛅️ @AfterAll, @AfterEach
  5. ⛅️ @Disabled
728x90

이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!

⛅️ 단위 테스트

우리가 개발한 기능이 원래의 의도대로 작동하는지 검증할 수 있는 방법 중 하나이다.

테스트의 종류에는 Unit test(단위 테스트), Integration Test(통합 테스트), UI Test가 있는데, 그 중 단위 테스트는 규모가 제일 작은 테스트이다.

 

클래스 범주 내에 작은(함수) 단위의 기능이 의도대로 동작하는지 유효성을 검증하는 테스트가 단위테스트이다.

단위 테스트를 통해 해당 기능에 대한 신뢰도를 높일 수 있으며, 규모가 작기 때문에 빠르게 실행된다.

 

 


⛅️ @Test, @DisplayName

1. @Test

@Test를 적으면 메서드를 테스트 메서드로 인식하고, 단일 실행할 수 있게 된다.

@Test
void test1(){
    System.out.println("test1");
}

메서드의 왼쪽에 보면 실행 핀이 보이게 되는데, 실행핀을 누르면 단일 테스트가 실행된다.

테스트 메서드 작성

초록색 불이 뜬다면 테스트가 성공했다는 뜻이고, 붉은색 불이 뜬다면 테스트에 실패했다는 뜻이다.

단일 테스트 성공

 

2. @DisplayName

@DisplayName은 테스트 결과에 뜨는 이름을 설정할 수 있는 어노테이션이다.

테스트 결과에 뜨길 원하는 내용이 있다면 @DisplayName()의 인자로 전달하면 된다.

 

예를 들어 test1()의 결과 창에 "테스트 메서드 1" 이라고 뜨게 하고싶다면, 밑과 같이 적으면 된다.

@Test
@DisplayName("테스트 메서드 1")
void test1(){
    System.out.println("test1");
}

 

@DisplayName을 통한 설정

 


⛅️ @BeforeAll, @BeforeEach

1. @BeforeAll

테스트를 시작하기 전에 단 한번 실행되며, static으로 선언해야 한다.

class AnnotationTest {
    @BeforeAll
    static void beforeAll(){
        System.out.println("beforeAll");
    }

    @Test
    void test1(){
        System.out.println("test1");
    }

    @Test
    void test2(){
        System.out.println("test2");
    }
}

테스트 실행 결과

 

 

2. @BeforeEach

각각의 테스트를 실행하기 전에 실행하는 메서드임을 표시한다.

class AnnotationTest {
    @BeforeEach
    void beforeEach(){
        System.out.println("beforeEach");
    }

    @Test
    void test1(){
        System.out.println("test1");
    }

    @Test
    void test2(){
        System.out.println("test2");
    }
}

 

 

 


⛅️ @AfterAll, @AfterEach

1. @AfterAll

모든 테스트 메서드가 끝난 후, 단 한 번 실행된다.

class AnnotationTest {

    @AfterAll
    static void afterAll(){
        System.out.println("afterAll");
    }

    @Test
    void test1(){
        System.out.println("test1");
    }

    @Test
    void test2(){
        System.out.println("test2");
    }
}

 

 

 

2. @AfterEach

각각의 테스트 메서드가 끝날 때마다 실행된다.

class AnnotationTest {

    @AfterEach
    void afterEach(){
        System.out.println("AfterEach");
    }

    @Test
    void test1(){
        System.out.println("test1");
    }

    @Test
    void test2(){
        System.out.println("test2");
    }
}

 


⛅️ @Disabled

테스트 클래스/메서드를 비활성화한다.

class AnnotationTest {

    @Test
    void test1(){
        System.out.println("test1");
    }

    @Test
    @Disabled
    void test2(){
        System.out.println("test2");
    }

    @Test
    void test3(){
        System.out.println("test3");
    }
}

 

 

728x90
  1. ⛅️ 단위 테스트
  2. ⛅️ @Test, @DisplayName
  3. ⛅️ @BeforeAll, @BeforeEach
  4. ⛅️ @AfterAll, @AfterEach
  5. ⛅️ @Disabled
'Spring Boot' 카테고리의 다른 글
  • [Spring] Bean 등록 방법(@Bean, @Component)
  • [Spring] 스프링 컨테이너 - ApplicationContext, IoC, DI
  • [Spring] Junit5 Assertions, assertThat()
  • [Spring] Spring 프로젝트 생성 - IntelliJ IDEA
HEY__
HEY__
안녕하세요 :) 공부하며 배운 것들을 기록하기 위한 블로그입니다. 도움이 되시길 바라며 혹시 잘못된 점이 있다면 댓글 부탁드립니다! :D
250x250
HEY__
while(true) { continue; }
HEY__
전체
오늘
어제
  • 분류 전체보기 (164)
    • Spring Boot (45)
      • 스프링 입문 강의 (18)
    • AWS (8)
    • 프로젝트 (6)
    • Network (21)
    • Operating System (8)
    • Database (4)
    • ETC (2)
    • Java (3)
    • C++ (7)
    • Python (1)
    • 도서 📚 (3)
      • Effective Java (3)
    • Coding test (50)
      • Baekjoon (30)
      • Leet Code (18)
      • Programmers (2)
    • Algorithm (C++) (5)

블로그 메뉴

  • 태그
  • Github
  • 글쓰기
  • 블로그관리

공지사항

인기 글

태그

  • C++
  • dispatcher servlet
  • Algorithm
  • CPP
  • aws
  • HTTP
  • Servlet Container
  • slack
  • OS
  • STL
  • Network
  • coding test
  • Java
  • Spring
  • spring boot
  • programmers
  • leetcode
  • Baekjoon
  • kotlin
  • Cloudfront

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
HEY__
[Spring] Junit5 단위 테스트 작성
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.