본문 바로가기
프로그래밍/JUnit

Java JUnit5 with VSCode #1

by Flow.X 2022. 1. 22.
728x90

Java 단위 테스트 프레임워크인 Junit5를 설정해보자 (빌드툴은 언제 하나 ..)

빌드툴 없이 사용하다보니 설정도 귀찮네 

 

단위테스트를 굳이 왜 코드로 만들어서 하나? 만드는것도 바빠 죽겠는데...

아래와 같은 이유라고 한다.

 

단 조건이 있다. "잘" 짜여진 테스트 코드라는 조건이다. (이게 잴 힘들다. ㅋㅋ)

 초기 개발단계부터 버그를 쉽게잡고, 비용을 줄인다
기능의 테스트 코드를 통해 개발자들이 쉽게 그 기능의 목적을 이해하고 쉽게 변경할 수 있게 해준다
좋은 테스트 코드는 문서작성을 쉽게 한다
기능별 테스트 코드는 새로운 프로젝트에 적용 시 코드 재사용성을 높이고 개선점도 미리 파악하게 해준다.

설정해보자.

VScode 사이트의 Java Test 문서를 보면  아래와 같다.

지원되는 환경 : JUnit4, JUnit5, TestNG
필요설정 : JDK 1.8이상, VSCode Java Extenstion Pack 설치
필요 Library : 빌드툴을 사용안하니 junit-platform-console-standandalone-{lastest.verson}.jar가 필요하다.

junit-platform-console-standalone.jar를 다운받고 ( 지금 기준 1.8.2가 최신이네)

이걸 lib 폴더로 옮기자.

junit-platform-console-standalone library 다운로드

vscode에 Java 프로젝트 만들고 다운로드 받은 jar를 lib 폴더로 옮기자

그럼 환경 설정 끝.

 

JUnit 5  써보기

간단하게 코드를 하나 만들어보자.

계산기 class를 하나 만들고 그 계산기를 테스트 해보는 테스트 코드이다.

import org.junit.jupiter.api.Test;

public class App {
    @Test void test_1(){
        
    }
}

class Calculator {
    public int add(int x,int y){ //덧셈
        return x+y;
    }
    public int multiple(int x, int y){//곱셈
        return x*y;
    }
    public double div(int x, int y){//나눗셈
        return x/y;
    }
}

JUnit4에서는 public을 앞에 붙혔는데 여긴 안붙인다.

계산기를 호출 해서 assertEquals, assertTrue, assertFail을 돌려보자 

public class App {
    @Test
    void test_1() {
        assertEquals(2, new Calculator().add(1, 1)); // 조건이 동일하지 않으면 중단
        assertTrue(2 == new Calculator().add(1, 1), "값이 정확하지 않다"); // 조건이 true이면 통과
        assertFalse(2 == new Calculator().add(1, 1), "값이 정확하지 않다"); //조건이 false이면 통과 
    }
}

assertFalse에서 오류가 날것이다 

Expected(기대값) 은 false 인데, Actual(실제값)은 true가 나왔다.  

클래스의 테스트 코드를 자동생성해 주는 메뉴도 있다

클래스에서 마우스 오른쪽 클릭 -> Source Action.. -> Generate Test .. -> JUnit 5 선택 -> 원하는 함수 클릭 하면

테스트 클래스가 자동 생성된다 

728x90

'프로그래밍 > JUnit' 카테고리의 다른 글

Java Junit 5 with VSCode(실행, assert ) #2  (0) 2022.01.22