[๐Ÿ’ก] JUnit ์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ

์„œ์€๊ฒฝยท2022๋…„ 12์›” 12์ผ
0

Spring

๋ชฉ๋ก ๋ณด๊ธฐ
30/43

๊ฐœ๋…์€ ์ž๊พธ ๊นŒ๋จน๊ธฐ ์‰ฌ์šฐ๋‹ˆ ์ ์–ด๋‘๊ณ  ์žŠ์ง€๋ง๊ธฐ ! ! !

@SpringBootTest(classes = ApiApplication.class)

  • ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” @SpringBootTest ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ์Šคํ”„๋ง๋ถ€ํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ์— ํ•„์š”ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ์˜์กด์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.
  • @SpringBootTest๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ…Œ์ŠคํŠธ ์–ด๋…ธํ…Œ์ด์…˜ ์ด๋‹ค.
  • ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉ์‹œ Junit ๋ฒ„์ „์— ๋”ฐ๋ผ ์œ ์˜ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค. (๊ณต์‹๋ฌธ์„œ ์ฐธ๊ณ )

@RunWith(SpringRunner.class)

  • @RunWith๋Š” jUnit ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ…Œ์ŠคํŠธ ์‹คํ–‰๋ฐฉ๋ฒ•์„ ํ™•์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค.
  • SpringJUnit4ClassRunner๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ด์ฃผ๋ฉด jUnit์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ค‘์— ApplicationContext๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์ค€๋‹ค.
  • @RunWith ์–ด๋…ธํ…Œ์ด์…˜์€ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ๋ณ„๋กœ ๊ฐ์ฒด๊ฐ€ ์ƒˆ์„ฑ๋˜๋”๋ผ๋„ ์‹ฑ๊ธ€ํ†ค(Singletone)์˜ ApplicationContext๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

๊ทธ์™ธ ํ…Œ์ŠคํŠธ ์‹œ ์‚ฌ์šฉ ์–ด๋…ธํ…Œ์ด์…˜

@Slf4j

  • ๋กœ๊น…์— ๋Œ€ํ•œ ์ถ”์ƒ ๋ ˆ์ด์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” interface์˜ ๋ชจ์Œ์ด๋‹ค.

@ActiveProfiles("local")

  • ํ™˜๊ฒฝ ๋ณ„๋กœ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ์„ค์ •ํ•œ๋‹ค. (ํ…Œ์ŠคํŠธ์ด๋ฏ€๋กœ ๋กœ์ปฌํ™˜๊ฒฝ์˜ ์„ค์ •ํŒŒ์ผ์„ ์‚ฌ์šฉ)

@Transactional

  • ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ์œ„์— @Transactional ์ด ์ถ”๊ฐ€๋˜๋ฉด, ์ด ํด๋ž˜์Šค์— ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋Šฅ์ด ์ ์šฉ๋œ ํ”„๋ก์‹œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€