Junit을 소개하기에 앞서 단위 테스트를 먼저 소개하겠습니다.
단위 테스트(Unit Test)란?
단위테스트란 특정 소스코드의 모듈이 의도한 대로 잘 작동하는지 검증하는 테스트입니다.
즉, 함수 및 메소드에 대한 테스트를 하는 작업으로써, Spring에서 단위테스트는 Spring Container에 올라와 있는 Bean 을 테스트 하는 것입니다
- 1. Junit5 이란??
- 자바 개발자가 가장 많이 사용하는 테스팅 기반 프레임워크다.
- 기본 Junit 4에 비해 JUnit 5는 3가지 모듈로 구성됩니다.
- 자바 8 이상을 필요로 합니다.
2. Juint 구조
JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

출처 : https://xxeol.tistory.com/14
- JUnit Platform : 테스팅 프레임워크를 구동하기 위한 launcher와 테스트 엔진을 위한 API를 제공한다.
- JUnit Jupiter : JUnit 5를 위한 테스트 API와 실행 엔진을 제공한다.
- JUnit Vintage : JUnit 3과 4로 작성된 테스트를 JUnit 5 Platform에서 실행하기 위한 모듈을 제공한다.
3.애노테이션(Annotations)
- @Test - 테스트 메서드임을 나타낸다.
- @ParameterizedTest - 파라미터화 된 테스트
- @RepeatedTest - 반복 테스트를 위한 테스트 템플릿임을 나타낸다.
- @TestFactory - 다이나믹 테스트를 위한 테스트 팩토리임을 나타낸다.
- @TestTemplate - 테스트 케이스에 대한 템플릿임을 나타낸다.
- @TestMethodOrder - 테스트 클래스의 테스트 메서드 실행 순서를 설정하는데 사용한다.
- @TestInstance - 테스트 클래스의 테스트 인스턴스 라이프사이클을 설정하는데 사용한다.
- @DisplayName - 테스트 클래스 또는 테스트 메서드에 대한 표시 이름을 지정한다.
- @DisplayNameGeneration 테스트 클래스에서 사용할 표시 이름 생성기를 지정한다.
- @BeforeEach 현재 클래스의 각 테스트 메서드를 실행하기 전에 실행되어야 하는 메서드임을 나타낸다.
- @AfterEach 현재 클래스의 각 테스트 메서드를 실행한 후에 실행되어야 하는 메서드임을 나타낸다.
- @BeforeAll 현재 클래스의 모든 테스트 메서드를 실행하기 전에 실행되어야 하는 메서드임을 나타낸다
- @AfterAll 현재 클래스의 모든 테스트 메서드를 실행한 후에 실행되어야 하는 메서드임을 나타낸다.
- @Nested 해당 클래스가 non-static 내부 테스트 클래스임을 나타낸다.
내부 테스트 클래스에서는 @BeforeAll과 @AfterAll 메서드를 직접적으로 사용할 수 없다. - @Tag 필터링 테스트를 위한 태그를 선언하는데 사용한다.
- @Disabled 해당 테스트 클래스 또는 테스트 메서드를 비활성화 하는데 사용한다.
- @Timeout 테스트, 테스트 팩토리, 테스트 템플릿 또는 라이프사이클 메서드가 주어진 실행 시간을 초과하면 실패시키기 위해 사용한다.
- @ExtendWith Extension을 선언적으로 등록하는데 사용한다.
- @RegisterExtension 프로그래밍적으로 Extension을 등록하는데 사용한다.
- @TempDir 라이프사이클 메서드 또는 테스트 메서드에서 필드 또는 파라미터 주입을 통해 임시 디렉토리를 제공하는데 사용한다.
'SPRING' 카테고리의 다른 글
| AWS S3 (0) | 2024.07.15 |
|---|---|
| [Spring] Junit 5 controller테스트 하는 방법 (0) | 2024.07.06 |
| [Spring] @NoArgsConstructor vs @AllArgsConstructor (0) | 2024.07.02 |
| 테스트코드에서만 적용되는 yml을 하고 싶을 때 (0) | 2024.07.01 |
| [Spring] security DelegatingFilterProxy,FilterChainProxy (0) | 2024.06.26 |