728x90
728x90

JUnit은 단위 테스트 도구

 외부 테스트 프로그램(케이스)을 작성하여 System.out으로 번거롭게 디버깅하지 않아도 됨
 프로그램 테스트 시 걸릴 시간도 관리할 수 있게 해주며 오픈 소스이며, 플러그인 형태로 Eclipse에 포함되어 있음.
 하나의 jar 파일로 구성 사용법 간단
 JUnit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주 는 테스트용 Framework
 JDK 1.4에서 추가된 assertXXX를 사용하여 Test를 진행
 JUnit은 테스트 결과를 확인하는 것 이외 최적화된 코드를 유추해내는 기능도 제공
 테스트 결과를 단순한 텍스트로 남기는 것이 아니라 Test클래스로 남김
 개발자에게 테스트 방법 및 클래스의 History를 넘겨줄 수도 있음.

 

JUnit의 특징

1. 단위 테스트 Framework 중 하나
2. 문자 혹은 GUI 기반으로 실행됨 
3. 단정문으로 테스트 케이스의 수행 결과를 판별함(assertEquals(예상 값, 실제 값))
4. 어노테이션으로 간결하게 지원함
5. 결과는 성공(녹색), 실패(붉은색) 중 하나로 표시

 

Eclipse - JUnit 설정

1. Java Project를 생성 후 Project 이름에서 오른쪽 마우스를 클릭하고 Properties를 선택
2. Java BuildPath를 선택
3. Libraries 탭을 선택하고, Add Library를 선택
4. JUnit을 선택하고, Next 버튼 선택
5. 버전을 선택하고, Finish 버튼 선택
6. JUnit이 추가 된 사항을 확인

 

 

JUNIT 실행 방법

* 그림처럼 실행하거나 단위실행 가능하다.

 

 

com.calculator 패키지, Calculator 클래스 작성

 

Calculator.java

package com.calculator;

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

 

 

CalculatorTest.java

package com.calculator.test;

import static org.junit.Assert.*;

import org.junit.Test;

import com.calculator.Calculator;

public class CalculatorTest {
	Calculator calculator = new Calculator();
	
	@Test
	public void testSum() {
		assertEquals(30,  calculator.sum(10,20));
	}
	public void testMul() {
		assertEquals(100,  calculator.mul(10,10));
	}
}

 

대표적인 단정문

assertArrayEquals(a,b) : 배열 a와b가 일치함을 확인 
assertEquals(a,b) : 객체 a와b의 값이 같은지 확인 
assertSame(a,b) : 객체 a와b가 같은 객체임을 확인 
assertTrue(a) : a가 참인지 확인 
assertNotNull(a) : a객체가 null이 아님을 확인

 상세내용 링크 : http://junit.sourceforge.net/javadoc/org/junit/Assert.html

 

어노테이션 활용

1) 테스트 메소드 지정
@Test
public void testSum() {
}
2) 테스트 메소드 수행시간 제한하기
@Test(timeout=5000) //밀리초
public void testSum() {
}
3) 테스트 메소드 Exception 지정하기
@Test(expected=RuntimeException.class)
public void testSum() {
}
4) 초기화 및 해제
@BeforeClass, @AfterClass
- 메소드 위에 선언되면 해당 테스트 클래스는 한번만 수행

@BeforeClass
public static void setupBeforClass() throws Exception{
}
@AfterClass
public static void tearDownAfterClass() throws Exception{
}
@Before, @After가 메소드 위에 선언되면 해당 테스트 클래스 안에 메
소드들이 테스트 되기 전과 후에 각각 실행되게 지정하는 어노테이션
@Before
public void setUp() throws Exception{
}
@After
public void tearDown() throws Exception{
}

 

728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v