TIL.JUnit - JUnit5 사용하기
JUnit5 사용하기
먼저 의존성을 추가하지 않은 기본 Spring Boot 프로젝트를 생성한다.
(Java 11, Maven)
- Spring Boot 2.2버전부터는 spring-boot-starter-test 아래 그림과 같이 밑에 자동으로 JUnit이 들어간다.
(이전 포스팅에서 다루었던 junit-jupiter를 확인할 수 있다)
- 만약, 2.2 이전 버전을 사용하거나 Spring Boot를 사용하지 않는다면, 아래 코드를
pom.xml
파일에 넣어주면된다.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
Test 만들어보기
-
테스트 파일을 임의로 하나 생성하고, JUnit에서 제공하는 기본 애노테이션을 활용하여 테스트를 작성한다.
IntelliJ(Mac) 기준 테스트를 생성하고자 하는 java 파일에서 cmd+shift+t 단축키를 이용할 수 있다
-
기본 애노테이션
@Test
- 테스트 내용을 담고 있는 함수에 붙여준다.
- 해당 애노테이션을 가진 함수들이 여러개 있는 테스트 클래스를 실행하면 실행 순서는 임의로 지정된다.@BeforeAll / @AfterAll
- 시작 / 끝에 1번만 실행이 되는 함수에 붙여준다.
- static void로 작성해야한다.
(private은 사용 불가하고, return 타입이 있으면 안된다는 제한이 있다)@BeforeEach / @AfterEach
- 각 테스트를 실행하기 전 / 후에 매번 실행이 되는 함수에 붙여준다.@Disabled
- 무시하고 넘어가야 하는 함수에 붙여준다.
- 실무에서는 deprecated 된 함수이므로 현재 로직에 영향이 없지만, 아직 코드 정리가 완벽하게 안되었을 때 사용하는 애노테이션이다. -
위 6개 애노테이션에 대한 예시 코드
class StudyTest {
@Test
void firsttest(){
System.out.println("create first");
}
@Test
void secondtest(){
System.out.println("create second");
}
@Test
@Disabled
void thirdtest(){
System.out.println("create third");
}
@BeforeAll
static void beforeall(){
System.out.println("before all");
}
@AfterAll
static void afterall(){
System.out.println("after all");
}
@BeforeEach
void beforeeach(){
System.out.println("before each");
}
@AfterEach
void aftereach(){
System.out.println("After each");
}
}
- 실행 결과
before all
before each
create first
After each
before each
create second
After each
after all
기타
- JUnit5부터는 테스트 클래스, 메소드가 Public을 사용하지 않아도 된다. (Java의 Reflection이라는 개념 때문인데, 이 내용은 다른 포스팅에서 자세하게 다뤄볼 예정)
Author And Source
이 문제에 관하여(TIL.JUnit - JUnit5 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minzz/TIL.JUnit-JUnit5-사용하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)