๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

study

[spring boot] mock test

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” TDD ๋ฅผ ์ œ๋Œ€๋กœ ์•Œ๊ณ , ์ ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ ์ •๋ฆฌํ–ˆ๋‹ค :) 

TDD ์ ์šฉ๊ธฐ : www.notion.so/Shop-api-1-49b80401badf4488b993460357b351a2

@SpringBootTest

  • SpringBootApplication์„ ์ฐพ์•„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋นˆ์„ ์ƒ์„ฑํ•˜๊ณ  @MockBean ์œผ๋กœ ์ •์˜๋œ ๋นˆ์„ ์ฐพ์•„ ๊ต์ฒด
  • @RunWith(SpringRunner.class)์™€ ๊ฐ™์ด ์จ์•ผํ•œ๋‹ค
  • SpringBootTest.WebEnvironment.MOCK → ๋‚ด์žฅ ํ†ฐ์บฃ ์‚ฌ์šฉ X
    • RANDOM_PORT, DEFINED_PORT → ๋‚ด์žฅ ํ†ฐ์บฃ ์‚ฌ์šฉ

WebTestClient

  • webflux ๋””ํŽœ๋˜์‹œ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.
  • restTemplate ๋ณด๋‹ค API ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค.
  • non-blocking ๊ธฐ๋ฐ˜ ํด๋ผ์ด์–ธํŠธ

@MockBean

  • ๊ฐ€์งœ Bean์„ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ(= ๋นˆ ์ปจํ…Œ์ด๋„ˆ์— ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฐ์ฒด์ผ ๋•Œ ์‚ฌ์šฉ)
  • springboottest ๋ณด๋‹ค ์ž‘์€ ํ…Œ์ŠคํŠธ
  • ApplicationContext ์— ๋“ค์–ด ์žˆ๋Š” ๋นˆ์„ Mock์œผ๋กœ ๋งŒ๋“  ๊ฐ์ฒด๋กœ ๊ต์ฒด
  • ๋ชจ๋“  @Test ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋ฆฌ์…‹ํ•œ๋‹ค.

@Mock

  • ๋‹จ์ˆœํžˆ ๊ฐ€์งœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฐ’์„ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

mock vs mock bean (https://dundung.tistory.com/230)

MockMVC

์Šคํ”„๋ง MVC ๋™์ž‘์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค

์ฐธ๊ณ : https://ict-nroo.tistory.com/96