BackEnd/JUnit
[JUnit4] 단정문 및 어노테이션 정리
ejyoovV
2021. 5. 19. 16:42
JUnit API 문서
http://junit.sourceforge.net/javadoc/org/junit/Assert.html
Assert (JUnit API)
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
junit.sourceforge.net
단정문 종류
JUnit의 단정문 종류
assert : ~하길 기대한다 정도로 생각하면 됨.
배열 a와 b의 값 같은가?
assertArrayEquals(a,b)
객체 a와 b의 값 같은가?
assertEquals(a,b)
- 사용 예) SQL 쿼리 수행 시 가져온 결과값에 대한 비교를 할 수 있음.
@Test
public void selectMemberByIdSQL() {
String userId = "test3";
MemberVO memberVo = session.selectOne("Member-Mapper.selectMemberById",userId);
Assert.assertEquals("test3", memberVo.getUserId());
}
@Test
public void insertMemberByInfoSQL() {
MemberVO paramTypeMemberVo = new MemberVO();
paramTypeMemberVo.setUserId("test3");
paramTypeMemberVo.setUserPw("yej33585");
paramTypeMemberVo.setUserPhone("010-0000-0000");
paramTypeMemberVo.setUserEmail("test@test.com");
int cnt = session.insert("Member-Mapper.insertMemberByInfo", paramTypeMemberVo);
Assert.assertEquals(1, cnt);
}
객체 타입이 같은가?
assertSame(a,b)
조건이 참인가?
assertTrue(a)
- 사용 예) SQL 쿼리 수행 시 가져온 결과값이 List일 때, 이것의 Size가 0보다 큰지 비교할 수 있음.
@Test
public void selectMemberListSQL() {
MemberVO paramTypeMemberVo = new MemberVO();
paramTypeMemberVo.setUserNo(124);
paramTypeMemberVo.setUserId("test3");
paramTypeMemberVo.setUserPw("yej33585");
paramTypeMemberVo.setUserPhone("010-0000-0000");
paramTypeMemberVo.setUserEmail("test@test.com");
List<MemberVO> memberVoList = session.selectList("Member-Mapper.selectMemberList",paramTypeMemberVo);
Assert.assertTrue(memberVoList.size()>0);
}
null이 아니어야 한다.
assertNotNull(a)
JUnit Annotation
@Test 가 실행되기 전에 수행할 것
@Before
예) DB 연결정보 담은 세션 가져오기
@Before
public void openSession() {
session = factory.openSession();
}
@Test가 종료된 후 수행할 것
@After
예) DB 연결정보 담은 세션 반납하기
@After
public void closeSession() {
session.close();
}
@Test 실행 과정 시 맨 먼저 수행
@BeforeClass
public static void testBeforeClass() {
//수행코드 작성
}
@Test 실행 과정 시 맨 마지막 수행
@AfterClass
public static void testAfterClass() {
// test 실행 도중 마지막 작업 작성
}
테스트 - 일반
@Test
테스트 - 시간제한(5초 넘길 시 실패)
@Test(timeout=5000)
테스트 - Exception 동작여부
@Test(expected=RuntimeException.class)