TIL

211일차(모험 120일차) - 코드 살펴보기

haedal-uni 2022. 4. 13. 22:04
728x90

어제 test 코드에서 나타난 오류를 아래 코드로 해결했다고 작성했다.

그 코드가 뭔지 찾아봤다.

@ExtendWith( SpringExtension. class )
@SpringBootTest ( webEnvironment = SpringBootTest . WebEnvironment . RANDOM_PORT )

 

 

 

@ExtendWith( SpringExtension. class )

@RunWith(SpringRunner.class) // Junit4 사용 시
@ExtendWith(SpringExtension.class) // Junit5 사용 시

 

test와 관련된 라이브러리가 있다. (test의 핵심은 junit 라이브러리)

test할 때 자바 진영에서는 junit이라는 라이브러리를 대부분 사용한다.

그래서 스프링에서도 junit이라는 라이브러리를 사용한다.

출처 : [ SpringBoot 테스트 : @SpringBootTest - 통합 테스트하다. ]

 

 

 

 

@SpringBootTest ( webEnvironment = SpringBootTest . WebEnvironment . RANDOM_PORT )

@SpringBootTest의 webEnvironment 속성은 테스트의 웹 환경을 설정하는 속성이며

기본값은 SpringBootTest.WebEnvironment.MOCK이다.

 

WebEnvironment.MOCK은 실제 서블릿 컨테이너를 띄우지 않고

서블릿 컨테이너를 mocking 한 것이 실행된다.

 

이 속성값을 사용할때는 보통 MockMvc를 주입받아 테스트한다.

 

스프링 부트의 내장 서버를 랜덤 포트로 띄우려면 webEnvironment를 SpringBootTest.WebEnvironment.RANDOM_PORT로 설정하면 된다.

 

이 설정은 실제로 테스트를 위한 서블릿 컨테이너를 띄운다.

WebEnvironment.MOCK을 사용할때와는 달리 TestRestTemplate를 주입받아 테스트한다.

출처 : [ 스프링 부트 테스트 - 내장 서버 랜덤 포트로 띄우기 ]

 

 

728x90