BackEnd/JUnit
JUnit 5
hanseom
2022. 1. 30. 16:01
반응형
Junit이란 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크입니다. Spring Boot 2.2부터 JUnit 5 Jupiter가 적용되었습니다.
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
- JUnit Platform: 테스트를 실행해주는 런처를 제공합니다. (TestEngine API 제공)
- JUnit Jupiter: TestEngine API 구현체로 JUnit 5를 제공합니다.
- JUnit Vintage: JUnit4와 3를 지원하는 TestEngine 구현체입니다.
의존성 추가
Spring Boot 2.2 버전 이상의 프로젝트를 생성한다면 기본적으로 JUnit 5 의존성이 추가됩니다. 스프링 부트 프로젝트를 사용하지 않을 경우 아래 의존성을 추가해줍니다.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
기본 애노테이션
- @Test: 테스트 메소드임을 나타냅니다.
- @BeforeAll: 모든 테스트가 수행되기 전 한 번 실행됩니다.
- @AfterAll: 모든 테스트가 수행된 이후 한 번 실행됩니다.
- @BeforeEach: 각각의 테스트가 실행되기 전 실행됩니다.
- @AfterEach: 각각의 테스트가 수행된 이후 실행됩니다.
- @Disabled: 테스트 실행을 하지 않습니다.
- @DisplayNameGeneration: 메소드와 클래스 레퍼런스를 사용해서 테스트 이름을 표기하는 방법을 설정합니다. (기본 구현체: ReplaceUnderscores 제공)
- @DisplayName: 테스트 이름을 보다 쉽게 표현할 수 있는 방법을 제공하는 애노테이션입니다. @DisplayNameGeneration보다 우선 순위가 높습니다.
package com.java.JUnit5;
import org.junit.jupiter.api.*;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) // "_" 를 공백으로 변경합니다.
class JUnit5Tests {
@Test
void contextLoads() {
System.out.println("contextLoads");
}
@Test
@DisplayName("테스트 이름")
void next_step() {
System.out.println("next step");
}
@Test
@Disabled
void disabled() {
System.out.println("테스트 실행을 하지 않습니다.");
}
@BeforeAll
static void beforeAll() {
System.out.println("BeforeAll");
}
@AfterAll
static void afterAll() {
System.out.println("AfterAll");
}
@BeforeEach
void beforeEach() {
System.out.println("BeforeEach");
}
@AfterEach
void afterEach() {
System.out.println("AfterEach");
}
}
반응형