본문 바로가기
JAVA SPRING

JUnit 5

by 앙헬디마리아 2021. 6. 27.
728x90

 

JUnit란 ?

 

JAVA의 단위테스트를 위한 프레임워크

자바 개발자의 93%가 JUnit를 사용

 

더보기

단위테스트란 ?

프로그램의 기본 단위인 모듈을 테스트하는 것.

 

Spring boot 2.2 버전 이상에서는 Junit5를 Default로 Dependency가 포함되어 있다. 

 

 

만약 Spring Boot 프로젝트를 사용하지 않는다면

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.7.2</version>
            <scope>test</scope>
        </dependency>

추가하자.

 

 

Junit5 구조

 

JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

 

Platform : 테스트를 실행해주는 런처 제공. TestEngine API 제공

Jupiter : TestEngine API 구현체로 JUnit 5를 제공

Vintage : JUnit 4와 3을 지원하는 TestEngine 구현체

 

 

spring-boot-starter-test 가 포함하고 있는 라이브러리

 

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

 

  • JUnit5 + JUnit4의 호환성을 위한 vintage-engine
  • Spring test & SpringBoot Test
  • AssertJ : Assertion을 제공하는 Java 라이브러리. 대표적으로 assertEquals와 같은 메소드를 사용하여 테스트.
  • Hamcrest : Java Matcher 라이브러리. 대표적으로 assertThat과 같은 메소드를 사용하여 테스트.
  • Mockito : 가짜 객체인 Mock을 사용하게 해주는 Java 프레임워크.
  • JSONassert : JSON 용 Assertion Java 라이브러리.
  • JsonPath : JSON 용 XPath

 

 

테스트할겸 간단하게 클래스를 생성하여 코드를 작성하였다.

 

 

 

class StudyTest {

    @Test
    void create(){
        Study study = new Study();
        assertNotNull(study);
        System.out.println("create");
    }

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

    @BeforeAll
    static void beforeAll(){
        System.out.println("before all");
    }

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

    @BeforeEach
    void beforeEach(){
        System.out.println("before each");
    }

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

}

 

결과 : 

 

  • @Test : 해당 메소드가 Test대상임을 알려줌.
  • @BeforeAll : 해당 클래스의 모든 Test가 수행되기 전에 딱 한번 호출됨. static 메소드의 형태. 보통 설정등에 활용. 
  • @AfterAll : 해당 클래스의 모든 Test가 수행된 후에 딱 한번 호출됨. static 메소드의 형태.
  • @BeforeEach : 각 Test가 수행되기 전에 매번 호출됨. 로깅등에 활용.
  • @AfterEach : 각 Test가 수행된 후에 매번 호출됨.

 

 

 

 

참조


https://minkwon4.tistory.com/155

 

[JUnit] JUnit이란

단위 테스트란? 단위 테스트(Unit Test)는 프로그램의 기본 단위인 모듈(Module)을 테스트하는 것이다. 구현 단계에서 각 모듈의 개발을 완료한 후 명세서의 내용대로 정확히 구현되었는지를 테스트

minkwon4.tistory.com

 

728x90

'JAVA SPRING' 카테고리의 다른 글

빌더패턴(Builder Pattern)  (0) 2021.07.18
싱글톤 패턴(Singleton Pattern)  (0) 2021.07.17
서블릿(Servlet) 이란?  (0) 2021.06.04
@Transactional  (0) 2021.06.03
Spring WebFlux란?  (0) 2021.05.29