-
JUnit 5Java/java study 2022. 1. 2. 00:28728x90반응형
JUnit 5 란?
자바 개발자가 많이 사용하는 테스팅 기반 프레임워크를 말한다. Java 8 이상부터 사용가능하며
JUnit Platform과 JUnit Jupiter, Junit Vintage 결합한 형태라고 보면 된다.
- JUnit Platform : 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 가지고 있다.
Platform은 TestEngine을 통해서 테스트를 발견, 실행, 결과를 보고한다. - JUnit Jupiter : TestEngine의 실제 구현체는 별도 모듈이다. 모듈 중 하나가 jupiter-engine이다.
이 모듈은 jupiter-api를 사용해서 작성한 테스트 코드를 발견하고 실행한다. Jupiter API는 JUnit 5에 새롭게 추가된 테스트 코드용 API로서, 개발자는 Jupiter API를 사용해서 테스트 코드를 작성할 수 있다. - JUnit Vintage : 기존에 JUnit 4 버전으로 작성한 테스트 코드를 실행할 때에는 vintage-engine 모듈을 사용한다.
JUnit5의 어노테이션(Annotation)
JUnit5 JUnit4 내용 @Test 테스트 Method임을 선언함 @ParameterizedTest 매개변수를 받는 테스트를 작성할 수 있음 @RepeatedTest 반복되는 테스트를 작성할 수 있음. @TestFactory @Test로 선언된 정적 테스트가 아닌 동적으로 테스트를 사용함. @TestInstance 테스트 클래스의 생명주기를 설정함. @TestTemplate 테스트 메소드 실행 순서를 구성하는데 사용함. @TestMethodOrder 공급자에 의해 여러 번 호출될 수 있도록 설계된 테스트 케이스 템플릿임을
나타냄.@DisplayName 테스트 클래스 또는 메소드의 사용자 정의 이름을 선언할 때 사용함. @DisplayNameGeneration 이름 생성기를 선언함. 예를 들어 '_'를 공백 문자로 치환해주는 생성기가 있음. ex ) new_test -> new test @BeforeEach @Before 모든 테스트 실행 전에 실행할 테스트에 사용함. @AfterEach @After 모든 테스트 실행 후에 실행한 테스트에 사용함. @BeforeAll @BeforeClass 현재 클래스를 실행하기 전 제일 먼저 실행할 테스트 작성하는데, static로
선언함.@AfterAll @AfterClass 현재 클래스 종료 후 해당 테스트를 실행하는데, static으로 선언함. @Nested 클래스를 정적이 아닌 중첩 테스트 클래스임을 나타냄. @Tag 클래스 또는 메소드 레벨에서 태그를 선언할 때 사용함. 이를 메이븐을
사용할 경우 설정에서 테스트를 태그를 인식해 포함하거나 제외시킬 수 있음.@Disabled @Ignore 이 클래스나 테스트를 사용하지 않음을 표시함. @Timeout 테스트 실행 시간을 선언 후 초과되면 실패하도록 설정함. @ExtendWith 확장을 선언적으로 등록할 때 사용함. @RegisterExtension 필드를 통해 프로그래밍 방식으로 확장을 등록할 때 사용함. @TempDir 필드 주입 또는 매개변수 주입을 통해 임시 디렉토리를 제공하는데 사용함. JUnit5의 사용자 정의 Annotation
JUnit5 jupiter의 어노테이션은 Meta Annotation으로 사용할 수 있다. 즉, Annotation의 의미를 자동으로 상속하는 고유한 Custom Annotation을 정의할 수 있다.
사용자 정의 Fast Annotation
@Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Tag("fast") public @interface Fast { }
사용자가 생성한 주석 사용
@Fast @Test void myFastTest() { // ... }
나머지는 Spring Boot를 사용할 때 더 자세히 알아보겠다. 지금 공부해봤자 별로 의미가 없는 듯하다..
더보기JUnit5 필수 개념 정리 (JAVA) (tistory.com)
JUnit5 필수 개념 정리 (JAVA)
안녕하세요? 코딩중독입니다. 우테코를 진행하면서 JUnit5를 활용한 단위 테스트를 배우고 있는데, 관련된 JUnit5 문법을 정리하기 위해 포스팅을 작성합니다. 혹시나 미흡하거나 틀린 부분은 댓글
steady-coding.tistory.com
JUnit 5 알아보기
JUnit 5 알아보기 JUnit 5에 대하여 알아보도록 하겠습니다. 목차 Table of Contents JUnit 5란 ?? 이전버전의 JUnit과 다르게 JUnit 5는 세가지 하위 프로젝트의 여러 모듈로 구성됩니다 JUnit5 = JUnit Pla..
beomseok95.tistory.com
728x90반응형'Java > java study' 카테고리의 다른 글
Java - 클래스(Class) 와 객체 생성 (0) 2022.01.09 Java - LinkedList, Stack, Queue 구현하기 (0) 2022.01.02 Java - 제어문 (0) 2022.01.01 Java - 연산자 (0) 2021.12.19 Java - 프리미티브 타입과 레퍼런스 타입 (0) 2021.12.10 - JUnit Platform : 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 가지고 있다.