[스프링] 스프링 부트 테스트에서의 REST API 테스트

이 포스트에서는 스프링 부트 애플리케이션에서 REST API를 테스트하는 방법에 대해 알아보겠습니다.

목차

  1. 의존성 추가
  2. 테스트 코드 작성
  3. 테스트 실행

의존성 추가

먼저, 테스트를 위해 spring-boot-starter-test 의존성을 pom.xml 파일에 추가합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

테스트 코드 작성

다음으로, REST API를 테스트할 코드를 작성합니다. 예를 들어, GET 요청을 테스트하는 코드는 다음과 같이 작성할 수 있습니다.

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;

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

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MyRestControllerTest {

    @LocalServerPort
    private int port;

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void testGetRequest() {
        String url = "http://localhost:" + port + "/api/resource";
        String response = this.restTemplate.getForObject(url, String.class);
        assertEquals("ExpectedResponse", response);
    }
}

테스트 실행

테스트를 실행하려면 MyRestControllerTest 클래스에서 JUnit 테스트를 실행하면 됩니다.

이렇게 함으로써, 스프링 부트 애플리케이션에서 REST API를 테스트할 수 있습니다.

참고 자료