SeouliteLab

[Java/자바] Spring @SpringBootTest: 스프링 부트 애플리케이션 통합 테스트 본문

프로그래밍

[Java/자바] Spring @SpringBootTest: 스프링 부트 애플리케이션 통합 테스트

Seoulite Lab 2024. 3. 12. 11:23

스프링 부트에서는 @SpringBootTest 어노테이션을 사용하여 애플리케이션의 전체 컨텍스트를 로드하고 통합 테스트를 수행할 수 있습니다. 이를 통해 실제 환경과 유사한 테스트 환경에서 애플리케이션을 테스트할 수 있습니다. 이번 글에서는 @SpringBootTest 어노테이션의 사용법과 예제 코드를 통해 자세히 살펴보겠습니다.

1. 기본적인 @SpringBootTest 사용법

가장 간단한 형태의 @SpringBootTest 어노테이션은 테스트 클래스에 적용됩니다. 이 경우에는 스프링 부트 애플리케이션 전체를 로드하고 테스트를 수행합니다.

예제 1: 기본적인 @SpringBootTest 사용법

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

@SpringBootTest
public class MyIntegrationTest {

    @Autowired
    private MyService myService;

    @Test
    public void testService() {
        assertNotNull(myService);
        // 테스트할 내용 추가
    }
}

위의 예제에서는 MyService라는 서비스를 테스트합니다. @SpringBootTest 어노테이션을 사용하여 애플리케이션 컨텍스트를 로드하고, @Autowired를 통해 필요한 빈을 주입받아 테스트를 수행합니다.

2. 특정 프로파일을 사용하는 @SpringBootTest

특정 프로파일을 사용하여 애플리케이션을 테스트하려면 properties 속성을 사용하여 프로파일을 지정할 수 있습니다.

예제 2: 특정 프로파일을 사용하는 @SpringBootTest

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

@SpringBootTest(properties = "spring.profiles.active=test")
public class MyIntegrationTest {

    @Autowired
    private MyService myService;

    @Test
    public void testService() {
        assertNotNull(myService);
        // 테스트할 내용 추가
    }
}

위의 예제에서는 test 프로파일을 사용하여 애플리케이션을 테스트합니다.

3. 예제 코드

다음은 @SpringBootTest 어노테이션을 사용한 예제 코드입니다.

예제 1: 기본적인 @SpringBootTest 사용법

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

@SpringBootTest
public class MyIntegrationTest {

    @Autowired
    private MyService myService;

    @Test
    public void testService() {
        assertNotNull(myService);
        // 테스트할 내용 추가
    }
}

예제 2: 특정 프로파일을 사용하는 @SpringBootTest

import

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

@SpringBootTest(properties = "spring.profiles.active=test")
public class MyIntegrationTest {

    @Autowired
    private MyService myService;

    @Test
    public void testService() {
        assertNotNull(myService);
        // 테스트할 내용 추가
    }
}

4. 결론

이상으로 Spring의 @SpringBootTest 어노테이션에 대한 자세한 설명과 예제 코드를 살펴보았습니다. @SpringBootTest 어노테이션을 사용하여 스프링 부트 애플리케이션을 통합 테스트할 수 있습니다.