본문 바로가기
백엔드/Spring Boot 이론

스프링 부트 애플리케이션 테스트 작성 가이드

by P_eli 2023. 12. 7.
728x90
반응형

스프링 부트 애플리케이션을 효과적으로 테스트하는 방법에 대해 알아보겠습니다. 테스트는 안정성과 신뢰성을 확보하는 데 중요한 역할을 합니다. 따라서 스프링 부트 애플리케이션을 개발할 때 테스트 코드 작성은 필수입니다. 이제 한 단계씩 따라가며 효과적인 테스트 코드를 작성하는 방법을 살펴봅시다.

 

1. 의존성 설정

먼저, build.gradle 또는 pom.xml 파일에 테스트 관련 의존성을 추가해야 합니다. 일반적으로는 JUnit과 스프링 부트의 spring-boot-starter-test를 추가합니다.

dependencies {
    // 기타 의존성...

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

 

2. 테스트 클래스 생성

테스트할 기능이나 클래스와 동일한 패키지에 Test라는 접미사를 가진 테스트 클래스를 생성합니다. 예를 들어, MyService 클래스를 테스트하는 경우 MyServiceTest 클래스를 생성합니다.

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MyServiceTest {

    @Autowired
    private MyService myService;

    @Test
    void testMyMethod() {
        // 테스트 코드 작성
    }
}

 

3. 테스트 메소드 작성

테스트 메소드에서는 @Test 어노테이션을 사용하여 테스트할 기능을 호출하고 예상 결과를 검증합니다.

import static org.junit.jupiter.api.Assertions.assertEquals;

@Test
void testMyMethod() {
    // Given
    String input = "Hello";

    // When
    String result = myService.myMethod(input);

    // Then
    assertEquals("Hello, World!", result);
}

 

4. Mocking 활용

의존성이 있는 클래스를 테스트할 때, Mocking을 활용하여 외부 의존성을 제어할 수 있습니다.

import org.mockito.InjectMocks;
import org.mockito.Mock;
import static org.mockito.Mockito.when;

@Mock
private MyDependency myDependency;

@InjectMocks
private MyService myService;

@Test
void testMyMethod() {
    // Given
    when(myDependency.someMethod()).thenReturn("Mocked Result");

    // When
    String result = myService.myMethod();

    // Then
    assertEquals("Mocked Result", result);
}

 

5. 테스트 실행

이제 테스트를 실행해봅시다. IDE에서는 테스트 클래스 또는 메소드를 우클릭하여 실행할 수 있습니다. 또는 Gradle 또는 Maven을 통해 명령어로 실행할 수도 있습니다.

./gradlew test

 

728x90
반응형