1. JUnit5 Overview
✋ JUnit5를 알아보기 전 JUnit이 무엇인지, 왜 사용하는지에 대해 알아보자!
<aside>
👉 1️⃣ What is JUnit?
- main method를 활용해 테스트할 때 발생하는 문제점을 해결하기 위해 등장한 도구다.
2️⃣ What is the use of main method?
3️⃣ What is the problem with the main method?
- Production code와 Test Code가 클래스 하나에 존재한다. 클래스 크기가 커짐. 복잡도 증가함.
- 🧑🏻💻 사칙연산 프로그램 구현(Production code와 Test Code 예시)
- Test Code가 실 서비스에 같이 배포됨.
- main method 하나에서 여러 개의 기능을 테스트 함. 복잡도 증가.
- method 이름을 통해 어떤 부분을 테스트하는지에 대한 의도를 드러내기 힘듦.
- 테스트 결과를 사람이 수동으로 확인
</aside>
1.1. JUnit5란?
<aside>
👉 JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
- JUnit Platform: 테스트를 실행해주는 런처와 TestEngine API를 제공함.
- Jupiter: TestEngine API 구현체로 JUnit5에서 제공함.
- Vintage: TestEngine API 구현체로 JUnit3, 4에서 제공함.
</aside>
2. Annotations(애노테이션)
JUnit Jupiter는 테스트 구성 및 프레임워크 확장을 위해 다음 애노테이션을 지원한다. 달리 명시되지 않는 한 모든 핵심 애노테이션은 junit-jupiter-api 모듈의 org.junit.jupiter.api 패키지에 있다.
2.1. 애노테이션을 활용해 테스트 코드 구현
<aside>
👉 JUnit 5.x 버전
@Test: 테스트 Method임을 선언함.
@BeforeEach: 모든 테스트 실행 전에 실행할 테스트에 사용함.
@AfterEach: 모든 테스트 실행 후에 실행한 테스트에 사용함.
- Assertions 클래스의 static assert method를 활용해 테스트 결과 검증
- 사칙연산 프로그램 Test Code 구현
</aside>
출처
🔗 https://junit.org/junit5/docs/current/user-guide/#overview
🔗 https://steady-coding.tistory.com/349#JUnit5란?
🔗 https://pjh3749.tistory.com/240?category=783717
🔗 자바 플레이그라운드 with TDD, 클린코드