1) JUnit5란?
- JUnit5는 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크입니다.
JUnit5는 모듈화가 되어 있는데, 크게 3부분으로 구성되어 있습니다.
그것은 JUnit5 Platform, Jupiter, Vintage입니다.
(1) JUnit5 Platform: 테스트를 실행해주는 런처와 TestEngine API를 제공합니다.
(2) Jupiter: TestEngine API의 구현체로, JUnit5를 제공합니다.
(3) Vintage: TestEngine API의 구현체로, JUnit4와 JUnit3를 제공합니다.
- Spring은 2.2버전 이후부터 JUnit5를 기본 테스팅 프레임워크로 제공합니다.
2) JUnit5 기본 애너테이션
- JUnit5의 기본 애너테이션에는 다음과 같은 것들이 있습니다.
(1)@Test
(2)@BeforeAll, @AfterAll
(3)@BeforeEach, @AfterEach
(4)@Disabled
(1) @Test
- @Test는 테스트 되어야 할 메소드임을 나타냅니다.
JUnit5부터는 @Test 메소드가 public 이어야 할 필요가 없습니다.
그 이유는 리플렉션을 사용하기 때문입니다.
@Test
void create(){
Study study = new Study();
assertNotNull(study);
System.out.println("create");
}
(2) @BeforeAll
- @BeforeAll은 모든 테스트가 실행하기 전에 딱 한 번만 호출이 됩니다.
@BeforeAll을 사용하는 메소드는 반드시 static으로 구현해야 합니다.
@BeforeAll
static void beforeAll(){
System.out.println("before all");
}
(3) @AfterAll
- @AfterAll은 마찬가지로 모든 테스트가 실행된 후에 딱 한 번만 호출이 됩니다.
@AfterAll을 사용하는 메소드도 반드시 static으로 구현해야 합니다.
@AfterAll
static void afterAll(){
System.out.println("after all");
}
(4) @BeforeEach
- @BeforeEach는 각각의 테스트 메소드를 실행하기 전에 한 번씩 실행됩니다.
@BeforeEach는 반드시 static일 필요는 없습니다.
@BeforeEach
void beforeEach(){
System.out.println("before Each");
}
(5) @AfterEach
- @AfterEach는 각각의 테스트 메소드를 실행한 후 한 번씩 실행됩니다.
@AfterEach는 반드시 static일 필요는 없습니다.
@AfterEach
void afterEach(){
System.out.println("after Each");
}
(6) @Disabled
- @Disabled는 작성한 테스트 메소드 중 실행하고 싶지 않은 메소드에 붙이면,
해당 메소드가 실행되지 않습니다.
@Test
@Disabled
void create1(){
System.out.println("create1");
}
3) JUnit5 테스트 이름 표시하기
- JUnit5 테스트의 이름을 표시하는 방법에는 2가지가 있습니다.
그것은 @DisplayNameGeneration, @DisplayName입니다.
(1) @DisplayNameGeneration
- @DisplayNameGeneration은 클래스와 메소드에 사용할 수 있습니다.
클래스에 사용하면 클래스에 있는 모든 메소드에 적용됩니다.
@DisplayNameGeneration은 '전략'에 해당하는 구현체를 입력해줄 수 있습니다.
대표적인 전략은 ReplaceUnderScores로, UnderScore를 빈 문자로 치환해줍니다.
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderScores.class)
class StudyTest{
}
(2) @DisplayName
- @DisplayName은 테스트의 이름을 명명해주는 애너테이션으로,
@DisplayNameGeneration에 비해 권장됩니다.
@Test
@DisplayName("스터디 만들기")
void create_new_study(){
Study study = new Study();
assertNotNull(study);
System.out.println("create");
}
참고
더 자바, 애플리케이션을 테스트하는 다양한 방법
'테스트' 카테고리의 다른 글
Assertions 클래스 assertThatThrownBy (0) | 2022.09.03 |
---|---|
Mockito 소개 (0) | 2022.09.02 |