본문 바로가기
Java Spring

Test Code 기본 - Java Spring Boot

by Bill Lab 2024. 9. 18.
728x90

서비스 레벨에서 간단한 메쏘드 하나 만들고(껍데기만)

인텔리제이 기준으로 단축키 (CMD+N) 이나 마우스 우측 클릭 후 Generate(생성)을 클릭 후

Test 옵션을 클릭하면 "Create Test" 라는 팝업창을 뛰울 수 있다.

JUnit 5버전이 기본값으로 설정되어있는데,

옵션항목에 보면 /@Before, @After라는 영역을 확인할 수 있을 것이다.

 

class ReserveServiceTest {


    @BeforeEach
    void setup() {}
    
    @AfterEach
    void afterSetup(){}
    
    @Test
    Void getReserveInfo(){}
}

 

테스트할때 @SpringBootTest 어노테이션은 webEnvironment 매개변수를 지원하는데

(MOCK, RANDOM_PORT, DEFINED_PORT, NONE) .MOCK이 기본값이 된다.

내장 서버를 실행하는 대신,  MOCK 환경의 웹환경을 사용하는 것이다.

 

RANDOM_PORT로 변경 시, application context를 로딩하고 내장서버를 사용하여, 임의포트

사용 및 실제 웹환경에서 테스트가 가능하다.

 

DEFINED_PORT의 경우 RANDOM_PORT와 동일하나 차이점은 우리가 property에 지정한

포트를 사용한다는 것이다.(기본 포트 8080)

 

NONE의 경우, Mocking이나 실제 웹 서버를 사용하지 않고 application context만 생성 된다.

 

아래의 코드는 DEFINED_PORT 를 적용한 테스트 코드 이다.

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureWebTestClient

 

 

728x90