스프링 부트 테스트 - 내장 서버 랜덤 포트로 띄우기
스프링 부트 테스트 - 내장 서버 랜덤 포트로 띄우기
👉 Dependency
spring-boot 2.2.5.RELEASE
junit 4.12
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class WebtoonApiControllerTest {
@LocalServerPort
private int port;
@Test
public void printPort() throws Exception {
System.out.println(port);
assertNotEquals(port, 0);
}
@Autowired
private TestRestTemplate restTemplate;
@Test
// Do some test...
}
📑 WebEnvironment.RANDOM_PORT
@SpringBootTest의 webEnvironment 속성은 테스트의 웹 환경을 설정하는 속성이며 기본값은 SpringBootTest.WebEnvironment.MOCK이다.
WebEnvironment.MOCK은 실제 서블릿 컨테이너를 띄우지 않고 서블릿 컨테이너를 mocking한것이 실행된다.
이 속성값을 사용할때는 보통 MockMvc를 주입받아 테스트한다.
다시 포스팅의 주제로 돌아가서 스프링 부트의 내장 서버를 랜덤 포트로 띄우려면 webEnvironment를 SpringBootTest.WebEnvironment.RANDOM_PORT로 설정하면 된다.
이 설정은 실제로 테스트를 위한 서블릿 컨테이너를 띄운다.
WebEnvironment.MOCK을 사용할때와는 달리 TestRestTemplate를 주입받아 테스트한다.
printPort() 실행 결과
'Spring Framework > Spring boot #3' 카테고리의 다른 글
[Spring Boot] 문자인증 구현 coolSMS (0) | 2022.05.24 |
---|---|
[스프링 부트/MVC] 정적 리소스(Static Resources) 기본 설정과 커스텀 방법 (0) | 2021.04.22 |
스프링 부트에서 즉시 웹 개발을 시작할 수 있는 이유 - AutoConfiguration (0) | 2021.04.22 |
Spring Boot + MyBatis 설정 방법(HikariCP, H2) (0) | 2021.04.22 |
[Spring Boot/Spring Web MVC] ViewController를 이용해서 뷰 매핑하기 (0) | 2021.04.22 |
[Spring Boot] ApplicationRunner 등록 방법 정리 (0) | 2021.04.22 |
스프링 부트의 의존성 관리(Dependency Management) (0) | 2021.04.22 |
스프링 부트 프로젝트 만들기 - Spring Initializr 웹 도구 사용 (0) | 2021.04.22 |