개발팁/Java

Spring Boot 환경 구축 및 단위테스트 코드 작성

후앤하 2022. 12. 18. 13:43
반응형

 

 

 

 

 

다음은 Spring Boot 애플리케이션을 초기화할 때 고려해야 할 몇 가지 중요한 측면입니다.

1. 프로젝트 구조 설정: Spring Boot 애플리케이션은 일반적으로 다음과 같은 디렉토리 구조를 가집니다.

 

 

my-project
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── pom.xml

 

 

src/main/java 디렉토리에는 애플리케이션의 소스 코드가 포함되어 있고 src/main/resources에는 application.properties, logback.xml 및 기타 구성 파일과 같은 리소스가 포함되어 있습니다. src/test/java 디렉터리에는 테스트 소스 코드가 포함되어 있고 src/test/resources에는 테스트 리소스가 포함되어 있습니다.

2. 종속성 추가: Spring Boot 애플리케이션은 Maven 또는 Gradle 빌드 도구를 사용하여 빌드됩니다. Maven용 pom.xml 파일 또는 Gradle용 build.gradle 파일에서 필요한 종속성을 지정해야 합니다. 예를 들어 웹용 Spring Boot 스타터를 포함하려면 pom.xml 파일에 다음 종속성을 추가할 수 있습니다.

 

 

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

 

3. 기본 클래스 만들기: 기본 클래스는 Spring Boot 애플리케이션의 시작점입니다. @SpringBootApplication으로 주석을 달아야 하며 SpringApplication.run() 메서드를 호출하는 main() 메서드를 포함해야 합니다. 다음은 기본 클래스의 예입니다.



import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {
  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}

 

 

 

 

 

 

 

4 단위 테스트 작성: 응용 프로그램이 예상대로 작동하는지 확인하기 위해 응용 프로그램에 대한 단위 테스트를 작성하는 것이 좋습니다. Spring Boot에서는 @SpringBootTest 주석을 사용하여 애플리케이션 컨텍스트 및 테스트 구성 요소를 로드할 수 있습니다. 다음은 서비스 클래스를 테스트하는 단위 테스트의 예입니다.

 

 

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 testDoSomething() {
    // Arrange
    String input = "test input";
    String expectedOutput = "test output";

    // Act
    String actualOutput = myService.doSomething(input);

    // Assert
    assertEquals(expectedOutput, actualOutput);
  }
}

 

 

반응형