test.###.###.api.{API경로}.{HTTP메서드}_specs
- 테스트 코드가 운영 코드의 공개된 형식에만 접근할 수 있도록 패키지를 test로 시작
- HTTP API 경로를 테스트 클래스 패키지에 반영
- 패키지에 표현된 경로로 전송되는 특정 HTTP 메서드를 사용한 요청 명세라는 뜻으로 클래스 이름에 HTTP 메서돠 _specs 접미어를 사용
@SpringBootTest 애노테이션
- 테스트 클래스가 SpringBoot 기반의 테스트 메서드를 실행하도록 지정
- classes 요소에 Spring Boot 구성 클래스 형식을 지정
- 테스트 대상 응용프로그램이 웹 서버에서 구동되도록 webEnvironment 요소를 지정
(ex. 임의의 포트를 사용해 테스트 서버 구동)
@DisplayName 애노테이션
- 테스트 결과가 출력될 때 테스트 클래스가 다루는 기능을 잘 표현해 주도록 사용
- 회원 가입 API 대상 테스트 클래스에는 다음과 같이 적용
@DisplayName("POST /users/signUP")
@Test 애노테이션
- 메서드가 테스트 메서드임을 표현
- @Test 애노테이션을 가진 메서드는 JUnit에서 실행 가능
TestRestTemplate 형식 매개변수
- 테스트 메서드가 대상 Spring Boot 기반 HTTP 응용프로그램에 접근할 수 있도록 Spring Boot Test가 제공하는 TestRestTemplate 형식의 매개변수를 사용할 수 있다
- 이 매개변수에 @Autowired 애노테이션을 추가하면 Spring Boot Test가 이 매개변수의 인자를 제공
- TestRestTemplate 클래스는 다양한 기능을 제공
Assertions.assertThat 정적 메서드
- Spring Boot Test가 설치해주는 AssertJ 라이브러리가 제공해주는 검증 도구