์คํ๋ง ๋ถํธ ํ ์คํธ - ๋ด์ฅ ์๋ฒ ๋๋ค ํฌํธ๋ก ๋์ฐ๊ธฐ
๐ 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() ์คํ ๊ฒฐ๊ณผ
๋๊ธ