728x90
300x250

[Sun Sys - Java] 태스트도구 JUnit 5 - Eclipse(STS 4.4)에서 사용하는 방법


프로그래밍을 하면서 태스트 작업을 하기 마련인데 자바에서 태스트 환경도구를 사용하는 방법에 대해서 소개하려고 한다.

수업 등에서는 다뤄볼 일이 적은 부분일 수도 있다. 쉬우면서 어려운 부분이 태스트 도구라고 본다.


IDE: Spring-tool-suite-4-4.7.2.RELEASE (2020-09-08 기준 - 최신)

JAR: 

1. org.junit.jupiter.api_5.6.0.v20200203-2009.jar

2. org.junit.jupiter.engine_5.6.0.v20200203-2009.jar

3. org.junit.jupiter.migrationsupport_5.6.0.v20200203-2009.jar

4. org.junit.jupiter.params_5.6.0.v20200203-2009.jar

5. org.junit.platform.commons_1.6.0.v20200203-2009.jar

6. org.junit.platform.engine_1.6.0.v20200203-2009.jar

7. org.junit.platform.lanucher_1.6.0.v20200203-2009.jar

8. org.junit.platform.runner_1.6.0.v20200203-2009.jar

9. org.junit.platform.suite.api_1.6.0.v20200203-2009.jar

10. org.junit.vintage.engine_5.6.0.v20200203-2009.jar

11. org.opentest4j_1.2.0.v20190826-0900.jar

12. org.apiguardian_1.1.0.v20190826-0900.jar

13. org.junit_4.13.0.v20200204-1500.jar

14. org.hamcrest_1.2.0.v20180420-1519.jar


(EPL 라이선스 적용: 오픈소스)


* 공식 사용 메뉴얼: 사이트
https://junit.org/junit5/docs/current/user-guide/

* Assert 관련 API
http://junit.sourceforge.net/javadoc/org/junit/Assert.html




1. 사용 방법 - 영상


아주 간결하게 필요한 부분 위주로 소개하였으니 부담없이 시청해도 된다.



영상 1. Eclipse에서 프로젝트 생성하기 및 JUnit 셋팅하기



영상 2. JUnit 5 - 태스트 케이스 작성 및 동작 시키기




2. 사용 방법(2) - 프로젝트 생성하기


프로젝트를 생성하는 방법을 시작으로 소개하겠다.



그림 1. 프로젝트 생성하기


프로젝트 익스플로러(Project)에서 마우스 오른쪽 버튼을 클릭한다.

New-> Project를 클릭한다.



그림 2. 프로젝트 생성하기


Java Project를 클릭한다.

Next를 클릭한다.



그림 3. 프로젝트 생성하기


Project-name을 입력한 후 Finish를 누른다.



3. Properties - Junit 5 Class Path 등록하기 (Build Path 설정)


제일 중요한 작업이 아닐까 싶다.

이 셋팅을 안 해버리면, 사용할 수 없다. 물론 수동으로 등록하는 방법도 있겠으나 비효율적이다.



그림 4. 프로젝트 클릭 후 마우스 오른쪽 버튼 메뉴 모습


프로젝트를 클릭한다.

마우스 오른쪽 버튼을 클릭한 후, "Properties"를 클릭한다.



그림 5. 프로젝트 속성 - Java Build Path -> ClassPath 클릭 후 과정


Java Build Path를 클릭한다.

Libraries를 클릭한다.

ClassPath를 클릭한다.

Add Library를 클릭한다.



그림 6. Junit5 - 추가하기(1)


JUnit을 선택한다.

Next를 클릭한다.




그림 7. Junit5 - 추가하기(2)


Junit5를 선택한다.

Finish를 누른다.



그림 8. Junit5 - 추가 완료한 모습


다음처럼 등록되면 성공적으로 작업을 완료한 것이다.



4. Class 만들기


실제 태스트를 진행할 예를 하나 만들겠다.



그림 9. Class 만들기(1)


src 폴더를 클릭한 후 마우스 오른쪽 버튼으로 클릭한다.

New->Class를 클릭한다.



그림 10. Class 만들기(2)


Package는 적당히 입력해준다. (예: com.example)

Name을 Calculate라고 입력한다.

Finish를 누른다.



그림 11. Class 만들기(2)


코드를 작성해준다.


public int plus(int a, int b){

     return a + b;

}



5. Junit Test Case - 작성하기 


작성한 클래스를 태스트 케이스를 작성하여 태스트하도록 하겠다.


그림 12. Test Case 생성하기(1)


com.example 패키지를 마우스 오른쪽으로 클릭한다.

New->Other를 클릭한다.




그림 13. Test Case 생성하기(2)


Junit Test Case를 클릭한다.

Next를 누른다.



그림 14. Test Case 생성하기(3)


Class under test의 Browse를 클릭한다.



그림 15. Test Case 생성하기(2)


앞서 만든 "Calculate"를 검색한다.

Calculate를 선택한다.

OK를 누른다.



그림 16. Test Case 생성하기(3)


Package명을 입력한다.

Name을 입력한다.

Next를 누른다.



그림 17. Test Case 생성하기(4)


plus 함수를 선택한다.

Finish를 누른다.



6. Junit Test Case - 태스트 작업 실행하기 


태스트 명세를 완료하였다면, 태스트를 수행하도록 하겠다.



그림 18. Test Case 실행하기(1)


하나 예로 코드를 입력해준다.


@Test

void testPlus(){

      assertEquals(3, new Caculate().plus(2, 3));

}


이 코드는 직감적으로 plus 함수의 결과가 3이 되어야 참인데, 5라는 것을 코드만 보고도 알 수 있다.

외형 코드 말고 세부적인 코드에서 사람이 생각하는 결과를 원하는 게 아니라, 컴퓨터가 3으로 출력하는지 확인하는 것이다.



그림 19. Test Case 실행하기(2)


CalculateTest.java를 마우스 오른쪽 버튼으로 클릭한다.

Run As->JUnit Test를 클릭한다.



그림 20. Test Case 결과 (3)


결과값이 실패했다고 빨강색 진행바와 함수가 올라오는 것을 확인할 수 있다.

코드를 변경해서 시도해보자.


@Test

void testPlus(){

      assertEquals(5, new Caculate().plus(2, 3));

}


직감적으로 5가 되면 맞는 것이다.

진짜 5가 맞는지 확인해보자.


CalculateTest.java를 마우스 오른쪽 버튼으로 클릭한다.

Run as-> JUnit Test를 클릭한다.



그림 21. Test Case 결과 (4)


녹색 불이 들어오면서 이상이 없는 것을 살펴볼 수 있었다.



* JUnit Assert 주요 메서드와 사용 예시


 assert 메서드

설명 

 assertArrayEquals(a, b);

배열 a, b의 일치 여부

assertEquals(a, b);

객체 A와 B가 일치함을 확인.

assertSame(a, b);

 객체 A와 B가 같은 객체임을 확인한다.
assertEquals 메서드는 두 객체의 값이 같은지 검사를 한다.

assertSame메서드는 두 객체가 동일한가

즉, 하나의 객체여부를 확인한다. (== 연산자 역할)

assertTrue(a);

 조건 A가 참인가를 확인한다.

 assertNotNull(a);

객체 A가 null이 아님을 확인한다.

assertFalse(a);

조건 A가 거짓인지를 확인한다.



String empname[] = {"hwani","kimchi"};

String studentname[] = {"hama","sumi"};

assertArrayEquals(empname, studentname);


List someList = someClass.getSomeList();

assertNotNull("조회결과 null", someList);


assertTrue(someList.size() > 0);


int score = 5;

assertFalse( score < 0 ) ;


assertEquals(3, someList.size()); 



반응형

+ Recent posts