본문 바로가기
카테고리 없음

인텔리J Junit 사용하는 방법

by 슬기로운 동네 형 2023. 6. 6.
반응형

인텔리J Junit 사용하는 방법

인텔리J

 이번 포스팅은 JUnit을 인텔리J에서 사용하는 방법에서 대해 알아본다.
 TDD를 공부해 보기 마음먹었는데 JUnit 세팅하는 방법정도는 익혀둬야 할 듯하다. 본격적으로 사용해 본 경험이 없기 때문에 포스팅해 두고 생각날 때마다 보기 위해서다.
 사실 TDD는 10년 전부터 알고 있었지만 일을 하면서 사용하는 프로젝트가 없었다. 솔루션 회사가 아닌 이상 SI에서는 TDD를 사용하는 곳은 본 적이 없다.
 그렇지만 다행히도 내가 해온 방식은 TDD 개념과 비슷하게 일을 해오고 있었다.
 
 테스트하기 쉬운 코드는 타 코드의 결합과 의존성이 떨어지거나 없다.
 테스트하기 쉬운 코드는 잘 분리되어 있다.
 
우선, 인텔리J 툴에서 자바프로젝트를 만든다.
난 메이븐을 추가해 뒀다.

Add Framework로 메이븐을 추가한다.

메이븐 pom.xml 은 우선 비워뒀다.
공부용이긴 한데 확장성을 위해 메이븐으로 만들어놨다.

메이븐 pom.xml

JUnit 환경설정이 목적이기에 간단한 메서드를 하나 만들었다.
getSum 함수는 int 인자 두 개를 받아 두 인자의 곱을 리턴한다.

package com.jtest;

public class Main {
    public static void main(String arg []){
        int sum = getSum(2,2);
        System.out.println(sum);
    }

    public static int getSum(int a, int b){
        return a * b;
    }
}
간단한 Main 클래스와 getSum 실행함수

이제 JUnit를 설정해 볼 차례다.
인텔리J 왼쪽 내비게이터의  프로젝트 마우스 우클릭 후, 확장된 목록에서 Open Module Settings를 클릭한다.
테스트 폴더를 설정하기 위함이다.

open Module setting 설정

메이븐을 추가하게 되면 아래와 같이 src\test 폴더가 생겨있다. 없으면 만들면 된다.
test폴더에 커서를 놓고 상단 Tests 아이콘을 클릭한다.
적용하고 밖으로 나간다.

test 폴더 지정

녹색으로 지정된 test 폴더에 직접 코드를 만들어서 JUnit를 이용할 수도 있지만 인텔리J에서는 본 코드에서 JUnit으로 테스트할 수 있는 방법을 제공한다.
 Main 클랙스의 main 함수에 커서를 놓고 우클릭하면 목록에 Go To 가 있다. 거기에 커서를 놓으면 또 메뉴가 확장된다. 목록에서 맨 마지막 Test를 클릭한다.

Go To -> Test

위의 차례대로 Test를 클릭하게 되면 아래와 같은 작은 팝업이 뜬다. Create New Test (주황색아이콘) 목록을 클릭한다.

Create New Test

 Create Test 팝업이 뜬다.
 자세히 살펴보면 옵션들이 자동으로 지정된다.
 Destnation package 란에는 이전에 지정한 녹색 Test 폴더 하위로 main.java 하위의 패키지 경로와 동일하게 패키지가 생성된다.(참고로 TDD 관례상 패키지는 동일하게 생성한다)
 유닛 테스트할 메서드 두 개가 아래 Member 창에 뜬다.
 나는 메이븐을 미리 추가했으므로 OK를 클릭하게 되면 자동으로 JUnit5의 메이븐 주소가 pom.xml에 생성되며 환경이 설정된다.

Create Test 옵션

maven pom.xml에 dependencies가 생성된다.

아래처럼 인텔리J가 자동으로 MainTest 클래스와 메서드를 만들어 준다.

자동으로 MainTest 클래스와 메서드들을 만들어준다.

이제 메서드 안에 테스트 코드를 코딩하고 테스트를 진행한다.
메서드 왼쪽에 녹색 플레이버튼을 클릭하고 Run 'main()' 을 클릭한다.

코드옆 Number 표시 바로 오른 쪽에 녹색 플레이아이콘을 클릭하면 Run 'main()'
유닛테스트 성공

일부러 실패 코드를 넣어본다.
2 * 3 = 6 이므로 Expected : 6 이 출력되고 Actual 은 10 이 출력되며 실패한 모습.

실패시 출력되는 모습

 제대로 TDD를 공부를 하고 싶다는 욕구는 언제나 갖고 있었지만 실천을 하지 못했었다.
 요즘 깨달은 건데 내가 서 있는 곳이 문제였다. 그것을 알면서도 제자리에 있는 나 역시 문제다.
 새로운 것을 익히려면 익힐 수 있는 곳으로 떠나야 성장할 수 있다. 지금 있는 곳을 바꿀 수 없다면 떠나는 것이 맞다.
 도서관에서 밥 아저씨의 신간 책을 빌려왔는데 TDD를 경험한 케이스가 있어서 따라 해보려 JUnit 세팅을 해봤다.
https://www.yes24.com/Product/Goods/117713965

소프트웨어 장인 정신 이야기 - YES24

“세상을 떠받치는 장인으로 살고 싶은 개발자를 위해”첨단 인력이 가득할 것 같은 이미지와는 사뭇 달리 소프트웨어 산업은 ‘숙련자 부족’이라는 문제에 자주 시달려 왔다. 상대적으로 짧

www.yes24.com

 

반응형

댓글