JUnit5 알아보기

최수정·2023년 1월 4일
0

자바프로그래밍

목록 보기
15/15

참고사이트
JUnit5 완벽 가이드 - https://donghyeon.dev/junit/2021/04/11/JUnit5-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C/

🟦 애노테이션 정리

@DisplayName

  • 테스트 클래스나 테스트 메소드에 이름을 붙여줄 때 사용
  • 기본적으로 테스트 이름은 메소드이름을 따라감

@DisplayNameGeneration

  • 클래스에 해당 애노테이션을 붙이면 @Test 메소드 이름에 언더바(_)로 표시한 모든 부분은 공백으로 처리

@BeforeEach

  • 각각 테스트 메소드가 실행되기전에 실행되어야 하는 메소드를 명시
  • 테스트 하기전에 필요한 목업 데이터를 미리 세팅해주기 위해 주로 사용

@BeforeAll

  • @BeforeEach 는 각 테스트 메소드 마다 실행되지만, 이 어노테이션은 테스트가 시작하기 전 딱 한 번만 실행 된다.

@AfterEach

@AfterAll

@Nested

  • test 클래스안에 Nested 테스트 클래스를 작성할 때 사용
  • static이 아닌 중첩클래스, 즉 Inner 클래스여야만 함
  • 테스트 인스턴스 라이플사이클이 per-class 로 설정되어 있지 않다면 @BeforeAll , @AfterAll 가 동작안하니 주의
테스트 메소드란 @Test ,@RepeatedTest ,@ParamterizedTest,@TestFactory ,@TestTemplate 같은 메타 어노테이션이 메소드에 붙여진 메소드를 말한다.

라이플사이클 메소드란 @BeforeAll , @AfterAll , @BeforeEach , @AfterEach 같은 메타 어노테이션이 메소드에 붙여진 메소드를 말한다.

@Tag

  • 테스트를 필터링할 때 사용한다. 클래스또는 메소드레벨에 사용

@Timeout

  • 주어진 시간 안에 테스트가 끝나지 않으면 실패

🟨 자기만의 컴포즈 어노테이션을 정의할 수 있다.

예를 들어 코드에다가 @Tag("fast") 를 복사 붙여 넣기 하기보다, 커스텀 컴포즈 어노테이션인 @Fast 를 하나 만든 다음 Tag("fast") 를 대체하여 사용하는 것이다.
➡ ⭐@interface

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME) 
@Tag("fast") 
public @interface Fast { }

다음과 같이 사용할 수 있다.

@Fast
@Test
void myFastTest() {}

0개의 댓글