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
'TIL' 카테고리의 다른 글
213일차(모험 122일차) - 웹소켓 삽질 중 (0) | 2022.04.15 |
---|---|
212일차(모험 121일차) (0) | 2022.04.14 |
210일차(모험 119일차) - 프로젝트 오류 해결하기 (0) | 2022.04.12 |
209일차(모험 118일차) - 중복 등록과 충돌 (0) | 2022.04.11 |
206일차(모험 115일차) (0) | 2022.04.08 |