테스트코드에 대한 설명은 테스트코드 에서 작성하였습니다.
해당 내용을 바탕으로 직접 프로젝트의 테스트 코드를 작성해보겠습니다.
이 글에서는 통합테스트를 진행하지 않았고, api/저장소와 관계없는 비즈니스 어플리케이션 로직에 대한 단위 테스트를 작성하였습니다.
1️⃣ 테스트 의존성 추가
dependencies {
// test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-test-autoconfigure'
}
test {
useJUnitPlatform()
}
2️⃣ 서비스 테스트 설정
기본적으로 테스트에 필요한 어노테이션만 클래스에 설정해주면 됩니다.
이 때 글로벌한 설정을 따로 분리하면 역할과 책임을 분리할 수 있고, 편리하게 사용할 수 있습니다.
✔️ 글로벌한 세팅이 필요한 경우
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ExtendWith(MockitoExtension.class)
public class ServiceTest {
protected static final Member MEMBER = new Member(...);
@BeforeEach
static void setUp() {
...
}
@AfterEache
static void tearDown(){
...
}
}
class ApiServiceTest extends ServiceTest {
}
✔️ 공통적으로 사용하는 어노테이션만 필요한 경우
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ExtendWith(MockitoExtension.class)
public @interface ServiceTest {
}
@ServiceTest
class ApiServiceTest {
}
3️⃣ 서비스 단위 테스트 코드 작성
기본적으로 테스트코드를 작성할 때는 given, when, then 패턴을 따릅니다.
'프로젝트 Project' 카테고리의 다른 글
API 명세서 - Swagger + Rest Docs (5) | 2024.08.06 |
---|---|
API 명세서 - Swagger 적용하기 (feat. Spring security) (2) | 2024.08.06 |
OAuth2 로그인 구현하기 (2) | 2024.08.06 |
Spring Security + JWT로 로그인 구현하기 (2) (1) | 2024.08.06 |
추상 클래스로 예외 규격 설정하기 (1) | 2024.08.06 |