LoGin
article thumbnail
반응형

 

테스트 어노테이션은 주로 테스트코드를 작성하고 실행할 때 사용되는 어노테이션입니다. 다양한 테스트 프레임워크가 있으며, 대표적으로 JUnit과 TestNG가 있습니다. 프레임워크에서 해당 어노테이션을 사용하면 단위 테스트와 통합 테스트를 실행합니다.  몇 가지 테스트 어노테이션을 살펴보겠습니다.

 

1. @Test

테스트 메서드를 정의하는 기본 어노테이션입니다. 테스트 케이스 및 대상과 결과 확인을 어떻게 할지를 정의하는 메서드에 사용됩니다.

 

2. @Before

JUnit 5에서는 @BeforeEach라는 새로운 어노테이션이 도입되어 사용되고 있습니다. 이 어노테이션은 테스트 각각의 실행 전에 실행되는 메서드를 정의하며, 공통적인 설정이나 테스트 환경을 준비할 때 유용합니다.

 

3. @After

Junit 5에서 더 이상 사용되지 않으며, 대신 @AfterEach라는 새로운 어노테이션이 도입되었ㅅ브니다. 테스트 메서드 실행 후에 실행되는 메서드를 정의하여 테스트 리소스를 정리하거나 연결을 끊는 작업을 수행합니다.

 

 

어노테이션 설명
@Test 테스트 메소드를 정의하는 기본 어노테이션
@Before JUnit 4에서 사용되는 테스트 메소드 실행 전에 실행되는 어노테이션
@BeforeEach JUnit 5에서 사용되는 테스트 메소드 실행 후에 실행되는 어노테이션
@After JUnit 4에서 사용되는 테스트 메소드 실행 후에 실행되는 어노테이션
@AfterEach JUnit 5에서 사용되는 @After 어노테이션 대체 함수
@RunWith 테스트 실행을 위한 러너를 지정하는 어노테이션
@SpringBootTest 매플리케이션에서 사용되는 모든 빈을 포함하는 통합 테스트를 위해 사용됩니다.
@WebMvcTest 웹 계층 테스트를 위해 사용되며, 테스트 컨트롤러 및 관련 빈만 로드하여 가볍고 빠르게 테스트를 진행할 수 있습니다.
@DataJpaTest 데이터 계층 테스트를 위해 사용되며, JPA레포지토리 구성에 필요한 빈만 로드해 데이터 소스에 집중할 수 있습니다.
다른 어노테이션도 많이 있습니다.

 

 

 

위 어노테이션들과 함께 사용되는 스프링 부트 관련 어노테이션입니다.

1. @SpringBootTest: 애플리케이션에서 사용되는 모든 빈을 포함하는 통합 테스트를 위해 사용됩니다.

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

@SpringBootTest
class MyServiceTests {
    @Autowired
    private MyService myService;
    private int input;
    private int expected;

    @BeforeEach
    void setUp() {
        input = 3;
        expected = 9;
    }

    @Test
    void myTestMethod() {
        int result = myService.calculate(input);
        Assertions.assertEquals(expected, result);
    }

    @AfterEach
    void tearDown() {
        // 마무리 작업
    }
}

예제에서는 @SpringBootTest, @BeforeEach, @Test, @AfterEach 어노테이션을 사용하여 스프링 부트 애플리케이션에서 테스트를 준비하고 실행합니다. 스프링 부트와 함께 상요하는 다른 어노테이션들은

 

1. @WebMvcTest

웹 계층 테스트를 위해 사용되며, 테스트 컨트롤러 및 관련 빈만 로드하여 가볍고 빠르게 테스트를 진행할 수 있습니다.

 

2. @DataJpaTest: 데이터 계층 테스트를 위해 사용되며, JPA 레포지토리 구서엥 필요한 빈만 로드해 데이터 소스에 집중할 수 있습니다.

 

스프링 부트에서 제공하는 다양한 어노테이션을 활용하면, 애플리케이션의 여러 계층에서 효과적으로 테스트를 진행할 수 있으며, 테스트의 목적과 복잡성에 따라 적합한 테스트 어노테이션을 사용하여 코드 품질을 향상시킬 수 있습니다.

 

728x90
반응형
profile

LoGin

@LoGinShin

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!