Test case 만드는 원칙
1. public, void, 매개변수가 없어야함.
2. TestCase 이름을 명확하고 상세하게 작성해야함.
3. 다른 케이스 수행에 영향을 주지 않아야함.
=====================================================
Test case 작성 예시
(게시판제작 Test case)
package org.vision.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.vision.dto.MVCBoard;
public class TestOfMVCBoardDAO {
MVCBoardDAO dao;
@Before
public void setUp() { //테스트 시작할때 들어갈
dao = new MVCBoardDAO();
}
@After
public void tearDown() { //테스트 마지막에 수행될
System.out.println("테스트케이스 수행완료.");
}
@Test
public void testOfWrite() {
int preCnt = dao.countData();
dao.write("홍길동", "샘플데이터입력", "안녕하세요 홍길동인데 샘플데이터입니다.");
int postCnt = dao.countData();
assertEquals(preCnt+1,postCnt);
//=============================
int max = dao.getMaxId();
MVCBoard vo = dao.contentView(max+"");
assertTrue(vo.getbName().equals("홍길동") && vo.getbId()==max);
//최종적으로 실험 끝내고 자료를 제거
dao.delete(max+"");
}
@Test
public void testOfList() {
List<MVCBoard> list = dao.list();
assertNotEquals(list,null);
//for(MVCBoard x:list) {
// System.out.println(x);
//}
}
@Test
public void testOfContentView() {
MVCBoard dto = dao.contentView(1+"");
//System.out.println(dto);
assertEquals(dto,null);
}
@Test
public void testOfUpdate() {
dao.modify("1","홍길만","연습타이틀","연습컨텐츠");
MVCBoard dto = dao.contentView("1");
//System.out.println("수정결과"+dto);
//System.out.println("컨텐츠:"+dto.getbContent());
assertEquals(dto,null);
}
@Test
public void testOfDelete() {
//삭제할 자료를 일단 먼저 넣는다.
dao.write("삭제","삭제타이틀","삭제컨텐츠");
//삭제할 자료에 키(BID)를 얻어온다.
int max = dao.getMaxId();
//이 키로 자료를 검색하고
MVCBoard vo = dao.contentView(""+max);
//검색된 자료가 삭제될 자료인지 확인한다.
assertEquals(vo.getbName(),"삭제");
//해당자료를 삭제
dao.delete(max+"");
//삭제된 BID로 다시 검색한다.
vo = dao.contentView(""+max);
//그 결과가 null이면 통과
assertEquals(vo,null);
}
}