Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

charminseok

[Java Test] 테스트 본문

JAVA

[Java Test] 테스트

charminseok 2022. 9. 3. 23:54

테스트를 통해 코드가 의도한 방식으로 동작하는지 검증하기 위한 절차로 문제를 방지하기 위한 것이기도 하고, 코드 변경으로 인한 사이드 이펙트를 줄일 수 있기도 한다. 

 

단위 테스트

단위 테스트는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트다. 작은 단위로 테스트를 하며 이 단위는 하나의 기능 또는 메소드가 될 수도 있다. 

 

통합 테스트

통합 테스트는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트이다. 애플리케이션은 여러 모듈들로 구성되어 있고 이런 모듈들끼리 호출하면서 기능을 수행한다. 그래서 독립적인 기능에 대한 테스트가 아니라 통합적인 실행과정이 올바르게 동작하는지 확인하는 것이다.

 

JUnit

스프링 부트를 만들면 자동적으로 JUnit5를 사용할 수 있다.

기본 어노테이션

@Test

@BeforeAll

@AfterAll

@BeforeEach

@AfterEach

@Disabled

 

package com.example.javatest;

import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

/* 클래스나 메소드에 public을 사용할 필요가 없다.
reflection을 사용하여 자바의 메소드(private 포함)에 접근 가능하기 때문이다.

Reflection은 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다.
*/
class StudyTest {

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

    @Test
//    @Disabled //테스트를 실행하지 않음
    void create1(){
        System.out.println("create1");
    }

//    모든 테스트가 실행하기 전 딱 한번만 사용되고, static 메소드로 선언해야함함, return 타입이 있으면 안된다.
    @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");
    }
}

위 코드를 실행하면 각 어노테이션의 기능을 수행한다.

 

위와 같이 실행되는것을 볼 수 있다.

 

 

 

참고

https://mangkyu.tistory.com/143
http://blog.hwahae.co.kr/all/tech/tech-tech/6274/
https://www.inflearn.com/course/the-java-application-test/dashboard

 

'JAVA' 카테고리의 다른 글

[Java] Stream  (0) 2022.09.28
[Java] concurrentHashMap  (0) 2022.05.01
[Java] 자바 동기화 컬렉션(Synchronized Collection)  (0) 2022.04.25
[Java] 동등성, 동일성  (0) 2022.04.11
[Java] 싱글톤  (0) 2022.04.10