모두들 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/
자바를 다루는 기술 14장
구글링
호
오
호오?
호오...
신기하다. 이거 이용해서 뭐 해보고 싶다.
블랙잭 프로젝트 코드 리뷰 할 때 junit 사용 하시던데 다음 번에는 나도 그렇게 해봐야지.
'JAVA' 카테고리의 다른 글
자바 타임존 다루기 개념, Java8 날짜와 시간 API (0) | 2022.08.06 |
---|---|
자바 스레드(Thread) 수정 중 (0) | 2020.04.14 |
자바 제네릭(Generic) (0) | 2020.04.14 |
카카오톡 로그인 REST API, HttpClient 통해 이용해보기 (0) | 2020.04.10 |
java.lang.ClassNotFoundException : org.apache.http.HttpEntity / HttpClient 이용 시 (0) | 2020.04.09 |
댓글