▶ given - when - then 패턴 : 테스트 코드를 3단계로 구분해 작성하는 방식
1. given : 테스트 실행을 준비하는 단계
2. when : 테스트를 진행하는 단계
3. then : 테스트를 검증하는 단계
▶ JUnit : 자바 언어를 위한 단위 테스트 프레임워크
- 특징
1) 테스트 방식을 구분할 수 있는 애너테이션을 제공
2) @Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능
3) 예상 결과를 검증하는 Assertion 메서드 제공
4) 사용 방법이 단순하며 테스트 코드 작성 시간이 적음
5) 자동으로 실행되며 자체 결과를 확인하고 즉각적인 피드백을 제공
- 애너테이션
@BeforeAll : 전체 테스트를 시작하기 전에 1회 실행 (static 으로 메서드 선언)
@BeforeEach : 테스트 케이스를 시작하기 전에 매번 실행 (static 사용 불가)
@AfterAll : 전체 테스트 후 종료하기 전 1회 실행 (static 으로 메서드 선언)
@AfterEach : 각 테스트 케이스를 종료하기 전 매번 실행 (static 사용 불가)
▶ AssertJ : Junit 과 같이 사용하며 검증문의 가독성을 높여주는 라이브러리
▶ MockMvc : 애플리케이션을 서버에 배포하지 않고 테스트용 MVC 환경을 만들어 요청, 전송, 응답 기능을 제공하는 유틸리티 클래스 => 컨트롤러를 테스트할 때 사용되는 클래스