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 폴더로 옮기자.
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 |
---|