<aside> 💡

Spring Boot 애플리케이션을 테스트하기 위한 기능을 제공하는 기술

</aside>

✨애플리케이션을 개발하다 보면 다음과 같은 것을 확인해야 합니다.

상품이 정상적으로 저장되는가?
상품을 정상적으로 조회할 수 있는가?

주문이 정상적으로 생성되는가?
주문상품이 주문과 연결되는가?

Controller의 API가 정상적으로 응답하는가?
Repository가 DB와 정상적으로 동작하는가?

이러한 기능을 자동으로 검증하는 코드를 작성하는 것이 테스트입니다.

테스트를 사용하는 이유

테스트를 하지 않으면 기능을 수정할 때 기존 기능이 정상적으로 동작하는지 직접 확인해야 합니다.

코드 수정
   ↓
서버 실행
   ↓
브라우저 / Postman 실행
   ↓
직접 API 호출
   ↓
결과 확인

테스트를 작성하면:

코드 수정
   ↓
테스트 실행
   ↓
성공 / 실패 확인

따라서 테스트를 작성해두면 코드 변경에 따른 오류를 빠르게 발견할 수 있습니다.

Spring Boot Test 의존성

<aside> 💡

Spring Boot에서는 일반적으로 다음 의존성을 사용합니다.

</aside>

dependencies {
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

spring-boot-starter-test에는 테스트에 필요한 여러 라이브러리가 포함되어 있습니다.

spring-boot-starter-test
        │
        ├── JUnit 5
        ├── Spring Test
        ├── Spring Boot Test
        ├── Mockito
        ├── AssertJ
        └── Hamcrest