단위 테스트란?
소스 코드의 독립된 특정 모듈을 개별적으로 검증하는 테스트이다.
pom.xml에서 선언해준 junit 라이브러리를 통해 단위 테스트를 진행할 수 있는데,
JUnit 라이브러리를 사용하려면 Project에 Properties에 들어가서 Java Build Path에 추가해주어야한다.
Properties는 Project에서 마우스 우클릭을 하면 가장 하단에 위치하고 있다.
왼쪽 사이드 메뉴에서 Java Build Path를 찾아 클릭하고 우측 상단의 탭에서 Libraries를 클릭한다.
그 후, Classpath를 클릭하면 우측의 버튼들이 활성화 되는데, Add Library...버튼을 클릭한다.
JUnit을 선택하고 Next 버튼을 클릭한다.
JUnit library version을 JUnit4로 선택하고 Finish 버튼을 클릭한다.
Classpath에 JUnit 4가 추가된 것을 확인하고 Apply and Close 버튼을 클릭한다.
테스트하고자 하는 파일은 src / test / java에 생성한다.
나는 해당 경로에서 test package를 생성하고 BoardTest라는 이름의 class 파일을 생성하여
게시글을 생성하는 단위 테스트를 진행했다.
BoardTest.java
package com.basicWeb.www.test;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.basicWeb.www.domain.BoardVO;
import com.basicWeb.www.repository.BoardDAO;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {com.basicWeb.www.config.RootConfig.class})
public class BoardTest {
@Inject
private BoardDAO bdao;
@Test
public void insertBoard() {
for(int i = 0; i < 300; i++) {
BoardVO bvo = new BoardVO();
bvo.setTitle("Title Test");
bvo.setWriter("tester");
bvo.setContent(i+"번째 Content Test 입니다.");
bdao.insert(bvo);
}
}
}
BoardTest에 쓰여진 어노테이션(@)의 기능은 다음과 같다.
@RunWith(SpringJUnit4ClassRunner.class) | JUnit에서 Spring 테스트를 실행하는 기능 |
@ContextConfiguration(classes = {}) | 테스트를 수행할 때 사용할 Spring 설정 class를 지정 |
@Inject | 어떤 객체가 다른 객체에 의존할 때, 외부에서 주입받아 사용할 수 있게 함 |
@Test | JUnit에서 Test Method를 선언 |
테스트할 코드의 작성을 마쳤다면 해당 Method에서 마우스 우클릭하여 Run AS > JUnit Test를 클릭한다.
정상적으로 실행됐다면 초록색으로 JUnit이 뜨고,
에러가 발생하면 빨간색과 함께 Failure Trace에 에러 메세지를 보여준다.
초록색이 떴다면 본인이 테스트하고자 한 것이 제대로 실행되었는지 확인한다.
나의 경우에는 DAO로 게시물을 300개 만들어 달라고 했으니,
DB의 board Table에 게시물이 실제로 300개가 만들어졌는지 확인하면 된다.
<단위 테스트 확인>
[Spring] 14. 단위 테스트 (JUnit)
(다음 게시물 예고편)
[Spring] 15. 댓글의 초기 MVC 구성
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!