JUnit 5 알아보기
🔎JUnit 이란
JUnit은 전 세계 Java 개발자가 가장 많이 사용하는 테스트 프레임워크라고 한다.
그 중 JUnit 5는 가장 최근에 나온 프레임워크이다.
JUnit 5는 Java 8 버전 이상에서 사용가능하다.
JUnit 5와 이전 버전의 차이
모듈화
JUnit 5는 JUnit 4와 다르게 모듈화가 되어있다.
- Platform : 테스트를 실행하는 기본 런처 제공과 TestEngine API를 제공.
- Jupiter : TestEngine API 구현체로 JUnit 5를 제공.
- Vintage : JUnit 4와 3을 지원하는 TestEngine 구현체.
테스트 프레임워크 기본을 담당하는 Platform과 확장기능을 제공하는 Jupiter,
이전 JUnit 4와 3의 호환성을 위한 Vintage가 합쳐진 프레임워크가 JUnit 5이다.
Public 그리고 static
JUnit 5 이하 버전에서는 클래스와 메서드에 public, static을 써야 테스트가 가능했다.
그러나 JUnit 5 부터는 생략이 가능하다.
JUnit 5 사용하기
Spring boot 2.2 버전부터 프로젝트를 만들 때 JUnit 5가 탑제되어있다.
spring boot를 사용하지 않으면서 JUnit 5를 사용하고 싶다면
dependency를 pom.xml에 추가해주면 된다.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
기본 어노테이션
@Test
테스트코드 정의.@BeforeAll / @AfterAll
모든 테스트코드가 실행되기 전(Before), 후(After)에 실행.
구현할 때 static을 사용해야 한다.
리턴 타입이 존재할 수 없고 void만 가능하다.
@BeforeAll
static void beforeAll() {
System.out.println("before all");
}
@AfterAll
static void afterAll() {
System.out.println("after all");
}
@BeforeEach / @AfterEach
각각의 테스트코드가 실행되기 전(Before), 후(After)에 실행.
All과 달리 static일 필요는 없다.
@BeforeEach
void beforeEach() {
System.out.println("before Each");
}
@AfterEach
void afterEach() {
System.out.println("after Each");
}
@Disabled
해당 어노테이션이 있는 테스트코드는 실행안함.
테스트 이름 변경 어노테이션
@DisplayNameGeneration
클래스 혹은 메서드 전역에 추가하여 사용.
해당 클래스명 또는 메서드명의 _를 공백으로 치환한다.
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
@DisplayName
테스트코드 메서드에 추가하여 사용.
메서드마다 테스트 이름을 수정가능.
@DisplayName("╯°□°)╯")
본 글는 백기선님의 더 자바, 애플리케이션을 테스트하는 다양한 방법을 수강하며 학습한 내용입니다.
Author And Source
이 문제에 관하여(JUnit 5 알아보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chori/JUnit-5-이제는-알아야지-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)