JUnit 5
The 5th major version of the programmer-friendly testing framework for Java and the JVM
JUnit
java의 unit테스트 프레임워크이다. ( 단위테스트 도구 , 플러그인 형태로 eclipse에 포함되어 있다 )
테스트 결과를 확인 , 테스트시 걸린 시간 , 최적화된 코드를 유추
, 테스트 결과를 TEST클래스로 남김( 테스트 방법 및 클래스의 History를 넘겨줄수 있음)
@Test가 메소드 위에 선언되면, 해당 메소드는 테스트 대상 메소드임을 의미
@Test
void test() {
}
assertXXX(단정문)를 사용하여 테스트를 진행
@Test
void test() {
assertArrayEquals(a,b); // 배열 a와 b가 일치함을 확인
assertEquals(a,b); // 객체 a와b의 값이 같은지 확인
assertSame(a,b); // 객체 a와b가 같은 객체임을 확인
assertTrue(a); // a가 참인지 확인
assertNotNull(a); // a객체가 null이 아님을 확인
// 등등 다양한 단정문 존재
}
@Test(timeout = 밀리초) , 테스트 메소드 수행시간 제한
@Test(timeout = 2000)
void test() { }
결과를 반환하는데 2000밀리 초를 넘기면 테스트 실패
테스트 메소드 Exception 지정하기
@Test(expected = RuntimeException.class)
void test01() { }
이 테스트 메소드는 RuntimeException 발생해야 테스트 성공, 그렇지 않으면 실패

@BeforeClass , @AfterClass
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@BeforeClass , @AfterClass가 메소드 위에 선언되면
해당 테스트 클래스 수행시 가장먼저 딱 한번 수행 , 맨 마지막에 딱 한번 수행
(예)
DB연결시 드라이버 로딩 부분 : @BeforeClass로 지정한 메소드에 작성
DB연결후 드라이버 반납 부분 : @AfterClass로 지정한 메소드에 작성
@Before , @After
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Before , @After가 메소드 위에 선언되면
해당 클래스 안의 단위 테스트 메소드(@Test로 지정된)들이 수행되기 전과 후에 각각 실행된다
(예)
단위테스트 메소드 마다 공통으로 어떤 객체를 생성하면, 그 객체를 생성하는 부분을 @Before로 지정된 메소드에 작성한다
java project 에선
java build path에서 add library 로 JUnit 추가하면 사용가능
@Test 만 메소드에 붙어있으면, ( @Test + 메소드 ) 를 포함한 클래스를 Run As junit test 할수 있다
create a JUnit Test Case로 만들면 , 아래와 같이 기본적인 세팅이 갖춰져서 클래스가 생성된다
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class VVVVVV {
@Test
void test() {
fail("Not yet implemented");
}
}
spring starter project 에선
spring-boot-starter-test이게 디펜던시로 있고 JUnit도 기본적으로 있을껄?
src/test/java폴더에 @SpringBootTest가 붙은 클래스가 세팅되 있음
src/test/java폴더 여기에 테스트 코드 작성
'Spring > 테스트코드' 카테고리의 다른 글
| 단위 테스트, 통합 테스트 (0) | 2024.08.13 |
|---|---|
| Assertions( assertJ 라이브러리 ) (1) | 2024.08.13 |
| Mockito (0) | 2024.07.16 |
| Spring Boot 테스트종류 (0) | 2024.05.23 |