JUnit 5 : 자바 프로그래밍 언어용 단위 테스트 프레임워크

- JUnit Platform : 테스트를 발견하고 테스트 계획을 생성하는 Test Engine API를 가지고 있음. Platform은 TestEngine을 통해서 테스트를 발견하고 실행하고 결과를 보고
- Jupiter : Test Engine의 실제 구현체는 별도 모듈이며, 모듈 중 하나가 jupiter-engine입니다. 이 모듈은 jupiter-api를 사용해서 작성한 테스트 코드를 발견하고 실행. Jupiter API는 JUnit 5에 새롭게 추가된 테스트 코드용 API로서, 개발자는 Jupiter API를 사용해서 테스트 코드를 작성할 수 있음.
- Vintage : TJUnit 4 버전으로 작성한 테스트 코드를 실행할 때에는 vintage-engine 모듈을 사용
Junit5 어노테이션들
JUnit5 어노테이션 | 내용 | JUnit4 어노테이션 |
@Test | 테스트 Method임을 선언함. | @Test |
@ParameterizedTest | 매개변수를 받는 테스트를 작성할 수 있음. | |
@RepeatedTest | 반복되는 테스트를 작성할 수 있음. | |
@TestFactory | @Test로 선언된 정적 테스트가 아닌 동적으로 테스트를 사용함. | |
@TestInstance | 테스트 클래스의 생명주기를 설정함. | |
@TestTemplate | 공급자에 의해 여러 번 호출될 수 있도록 설계된 테스트 케이스 템플릿임을 나타냄. | |
@TestMethodOrder | 테스트 메소드 실행 순서를 구성하는데 사용함. | |
@DisplayName | 테스트 클래스 또는 메소드의 사용자 정의 이름을 선언할 때 사용함. | |
@DisplayNameGeneration | 이름 생성기를 선언함. 예를 들어 '_'를 공백 문자로 치환해주는 생성기가 있음. ex ) new_test -> new test | |
@BeforeEach | 모든 테스트 실행 전에 실행할 테스트에 사용함. | @Before |
@AfterEach | 모든 테스트 실행 후에 실행한 테스트에 사용함. | @After |
@BeforeAll | 현재 클래스를 실행하기 전 제일 먼저 실행할 테스트 작성하는데, static로 선언함. | @BeforeClass |
@AfterAll | 현재 클래스 종료 후 해당 테스트를 실행하는데, static으로 선언함. | @AfterClass |
@Nested | 클래스를 정적이 아닌 중첩 테스트 클래스임을 나타냄. | |
@Tag | 클래스 또는 메소드 레벨에서 태그를 선언할 때 사용함. 이를 메이븐을 사용할 경우 설정에서 테스트를 태그를 인식해 포함하거나 제외시킬 수 있음. | |
@Disabled | 이 클래스나 테스트를 사용하지 않음을 표시함. | @Ignore |
@Timeout | 테스트 실행 시간을 선언 후 초과되면 실패하도록 설정함. | |
@ExtendWith | 확장을 선언적으로 등록할 때 사용함. | |
@RegisterExtension | 필드를 통해 프로그래밍 방식으로 확장을 등록할 때 사용함. | |
@TempDir | 필드 주입 또는 매개변수 주입을 통해 임시 디렉토리를 제공하는데 사용함. |
'개념 창고' 카테고리의 다른 글
Signed & Unsigned 정의 및 차이 (0) | 2024.01.31 |
---|---|
SPA(Single Page Application) vs MPA(Multi Page Application) (0) | 2023.03.31 |
[DB] DDL, DML, DCL 이란? (0) | 2023.01.20 |
Web Server와 WAS(Web Application Server) (0) | 2023.01.19 |
오름차순(ASC), 내림차순(DESC) 쉽게 이해하기 (2) | 2023.01.17 |