본문 바로가기
JAVA

단위 테스트를 위한 JUnit 사용해보기 with Eclipse

by mingutistory 2020. 4. 14.
728x90

모두들 TDD의 중요성에 대해서 이야기하는데 나는 아는 것이 잘 없으므로 차근 차근 알아가 보도록한다.

TDD를 위한 프레임워크로 많이 사용한다는 JUnit에 대해서 먼저 조금 알아보고 사용해보자. 

 

JUnit이란?

단위 테스트 도구. System.out을 통한 번거로운 디버깅 하지 않을 수있음. 

오픈 소스. 플러그인 형태로 이클립스에 포함 되어 있음. 

 

Eclipse에 JUnit 설정하기

> 원하는 프로젝트에서 오른쪽 마우스 Properties 선택

> Java Build Path 선택

> Libraries > Add Library 선택

 

Libraries에 JUnit이 추가 된 것을 확인 할 수 있음.

 

JUnit 사용해보기

package com.calculator;

public class Calculator {
	public int sum(int num1, int num2) {
		return num1 + num2; 
	}
}

com.calculator.test 패키지 생성하고 오른쪽 마우스 버튼 > new > JUnit test case 선택

 

Name : CaculatorTest // 테스트 클래스 이름 입력 부분

Class under test : com.calculator.Calculator // 테스트 클래스가 테스트 하게 될 클래스 지정 

 

@Test 어노테이션 : testSum 메소드가 단위 테스트 메소드임을 명시 함.

 

package com.calculator.test;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import com.calculator.Calculator;

public class CaculatorTest {

	@Test
	public void testSum() {
		Calculator cal = new Calculator(); 
		assertEquals(30, cal.sum(10, 20)); 
	}

}

실행 방법 : 테스트 클래스 > 오른쪽 마우트 버튼 > Run As > JUnit Test 

 

성공하면 이런 초록색, 실패하면 빨간색.

 

Assert 클래스 : 데이터 검증을 하기 위한 메소드. 런타임 중간에 발생하는 데이터에 대해 검증 가능. 예상한 값과 클래스에서 받은 갑싱 일치하지 않는 다면 AssertionError가 발생 / JUnit view에서 failure 처리 (빨간색). 

오버로딩된 assert() 메소드들

- assertArrayEquals(Object[] expeccted, Object[] actual) : 두 개의 배열이 같은지 확인

- assertEquals(Objecct expected, Object actual) : 두 개의 매개변수가 같은지 확인

- assertSame(Objecct expected, Object actual) : 두 개의 매개변수가 같은지 확인. Equals랑 다르게 JVM 메모리 주소까지 비교.

- assertNotSame(Objecct expected, Object actual) : 두 개의 매개변수가 다른지 확인. 

assertNull / NotNull / True / False 등등..

 

 

참고 자료

http://www.nextree.co.kr/p11104/

 

새내기 개발자의 JUnit 여행기

이번 글에서는 JUnit 단위 테스트 Framework에 대해 알아봅니다. JUnit은 Java의 단위 테스트에서 빼놓고 이야기하기 어려울 정도로 절대적인 위치를 차지하고 있습니다. 그래서 높은 수준은 아니어도 기본적인 내용은 누구나 알고 있어야 합니다. 이번 글에서는 Eclipse에서 JUnit을 설치하는 방법과 간단한 예제를 통해 JUnit 사용법을 알아봅니다. 1. JUnit이란? JUnit은 단위 테스트 도구입니다. 외부 테스트

www.nextree.co.kr

자바를 다루는 기술 14장

구글링

 

호오?

호오...

신기하다. 이거 이용해서 뭐 해보고 싶다. 

블랙잭 프로젝트 코드 리뷰 할 때 junit 사용 하시던데 다음 번에는 나도 그렇게 해봐야지. 

300x250

댓글