티스토리 뷰

Java

JUnit 사용하기

토마's 2017. 4. 26. 17:46

안녕하세요. 오늘은 JUnit의 개념 및 JUnit을 간단하게 설치하고 사용하는 방법에 대해서 포스팅하려고 합니다. 


JUnit이란?


JUnit은 테스트 툴로서 외부 테스트 프로그램(케이스)를 작성하여 System.out으로 일일이 디버깅 하지 않아도 되고 프로그램 테스트시 걸린 시간 같은 것도 관리를 할 수 있게 해주는 오픈 소스 테스팅 프레임워크로 플러그인 형식으로 Eclipse에 포함되어 있습니다. 단, 하나의 jar파일로 되어 있으며 사용법 또한 간단합니다.

어느 정도의 개발이 진행되면 프로그램에 대한 테스트는 반드시 있어야 하는 작업인데 JUnit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화 시켜 단위 테스트를 용이하게 해주는 테스트용 프레임워크로 JDK 1.4에서 추가된 assertXXX를 사용하여 Test를 진행합니다.

JUnit은 테스트 결과를 확인하는 것 이외 최적화된 코드를 유추해내는 기능도 하므로 성능 향상도 기대할 수 있으며 테스트 결과를 단순한 텍스트로 남기는 것이 아니라 Test 클래스로 남김으로 개발자에게 테스트 방법 및 클래스의 History를 넘겨줄 수 있습니다.


JUnit은 xUnit이라고 하는 단위 테스트 프레임워크의 자바 구현물이며 Eric Gamma와 Kent Beck에 의해 최초로 작성되었습니다. 


우선, 이클립스에서 해당 프로젝트 우클릭 > Properties > Java Build Path > Library > Add Library를 선택합니다. 그리고 다음과 같은 창이 나오면 JUnit을 선택해서 버전을 선택해줍니다.


그리고 나서 잘 설정이 되었는지 예제를 통해서 진행해보도록 하겠습니다. 다음과 같이 Calculator.java와 CalculatorTest.java 파일을 만들어줍니다.


package calculator;

public class Calculator {

	int add(int i, int j) {
		return i + j;
	}
	
	int subtract(int i, int j) {
		return i - j;
	}
	
	int multiply(int i, int j) {
		return i * j;
	}
	
	int divide(int i, int j) {
		return i / j;
	}
	
}


package calculator;

import static org.junit.Assert.assertEquals;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {

	private Calculator cal;
	
	@Before
	public void setup() {
		cal = new Calculator();
		System.out.println("before");
	}
	
	@Test
	public void add() {
		assertEquals(9, cal.add(6, 3));
		System.out.println("add");
	}
	
	@Test
	public void substract() {
		assertEquals(3, cal.subtract(6, 3));
		System.out.println("substract");
	}
	
	@After
	public void teardown() {
		System.out.println("teardown");
	}

}


위의 코드를 살펴보시면 Calculator라는 클래스를 만들어주고 더하기, 빼기, 곱하기, 나누기를 하는 메소드들은 만들고 아래의 CalculatorTest 클래스에서 @Test 어노테이션을 사용해 테스트를 하고 싶은 메소드를 테스트할 수 있게 설정했습니다.

또한 @Before와 @After 어노테이션을 초기화 작업 및 후처리 작업을 할 수 있게 설정했습니다. assertEquals는 static 메소드라 import static으로 메소드를 import 해야하고, assertEquals() 메소드의 첫 번째 인자는 기대하는 결과 값이고, 두 번째 인자는 메소드를 실행한 결과 값입니다. assertEquals 메소드는 int, long, String 등 다양한 데이터 타입이 지원 가능하니 필요할 때 쓰시면 될 것 같습니다.


해당 클래스에서 우클릭 > Run As > JUnit Test를 클릭해서 단위테스트를 실행할 수 있습니다. 실행하게 되면 JUnit이라는 탭을 통해서 성공 및 실패 여부를 아래와 같이 보여줍니다.


성공했을 경우 초록색 바가 보이며, 실패 했을 경우 붉은색 바가 보이면서 어디서 실패 했는지와 에러 코드를 보여주며 콘솔 창에는 아래와 같은 출력 결과를 보여줍니다.



이와 같이, 단위 테스트 Framework인 JUnit에 대해서 알아보았습니다. 저도 이를 토대로 테스트 주도 프로그래밍을 할 수 있도록 노력해야겠고, 저 같이 처음 사용하시는 분들에게 도움이 되었으면 좋겠습니다. 이상으로 포스팅을 마치도록 하겠습니다.