JUnit4
Java 단위테스트 프레임워크
라이브러리
- JUnit4 : 테스팅 프레임워크
- asserEquals(a,b) : 객체 a,b가 일치함을 확인
- assertTrue(a) : 조건 a가 참인지 확인
- assertNotNull(a) : 객체 a가 null이 아님을 확인
테스트코드 작성예시
Calculator.java
public class Calculator {
public double sum(double a, doubleb){
return a + b;
}
}
CalculatorTest.java (Test code)
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
@Test
public void testSum(){
Calculator c = new Calculator();
double result = c.sum(10, 50);
assertEquals(60, result, 0);
}
}
- 테스트 클래스는 public 선언
- 클래스명은 관례상 테스트할클래스명 + Test
- @Test : 단위테스트 메소드임을 명시
- assertEquals(예상값, 실제값, 허용오차)
annotation
- Spring framework 기반 JUnit test setting
- @RunWith(SpringJUnit4ClassRunner.class) : Spring 기반의 테스트 코드 작성을 위해
- @ContextConfiguration : Spring 프레임워크 context 파일을 테스트 수행시에도 동일하게 로딩
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:WebContent/WEB-INF/classes/applicationContext*.xml"})
- 메서드 수행시간 제한
@Test(timeout=5000)
이 메서드가 결과반환하는데 5000 밀리초가 넘어가면 테스트 실패
- Exception test
@Test(expected=RuntimeException.class)
RuntimeException 발생해야하는 클래스
= 발생하지 않을경우 실패
- @Ignore : 해당 메서드는 테스트를 건너뜀
@Test(timeout=5000)
@Ignore(value=”테스트 안하고 넘어가기”)
- @Before : 해당 테스트클래스의 객체 초기화하는 작업
@Before
- @After : 해당 테스트 실행 후 실행됨
@After
Reference
JUnit in Action (단위테스트의 모든 것) (저자: 펠리페 레미, 빈센트 마솔, 게리 그레고리)