ejyoo's 개발 노트

[JUnit4] 단정문 및 어노테이션 정리 본문

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)