스프링 부트에서는 내가 만든 애프리케이션을 테스팅 할 수 있도록 다양한 테스트 유틸리티와 애노테이션을 제공한다. 이렇게 제공되는 기능을 통해 우리는 손쉽게 단위 테스트
부터 통합 테스트
까지 수행을 할 수 있다.
이번 포스팅에서는 스프링 부트를 기반으로 테스트 도구를 어떻게 사용하는지부터 어떤 애노테이션이 있고 각각의 애노테이션의 역할과 기능에 대해 간략하게 알아볼 것이다. 하나하나에 대한 더 깊은 내용은 추후 포스팅 혹은 공식 문서를 통해 학습하도록 하자
개발자가 SpringBoot 프로젝트 첫 시작시 기본으로 설정하는 의존성에 테스트 라이브러리 의존성을 추가해준게 아니라면 다음 의존성을 자신이 사용하는 툴(maven or gradle)에 넣어주도록 하자.
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>{version}</version>
<scope>test</scope>
</dependency>
Gradle
testImplementation 'org.springframework.boot:spring-boot-starter-test'
해당 라이브러리에는 다음과 같은 라이브러리들이 같이 제공된다
JUnit 5
: Java 애플리케이션의 단위 테스트를 위한 표준 라이브러리Spring Test & Spring Boot Test
: 스프링 부트 애플리케이션에 대한 유틸리티 및 통합테스트 지원AssertJ
: 하나의 가정이 올바른지 검사할 수 있도록 도와주는 fluent API 라이브러리Hamcrest
: Matcher Object 라이브러리로 필터, 검색등을 위해 값을 비교할 때 좀 더 편리하게 사용할 수 있게 해준다.