[TIL] 22.11.04 ๐Ÿ’Œ

yesยท2022๋…„ 11์›” 4์ผ
0

TIL ๐Ÿ’Œ

๋ชฉ๋ก ๋ณด๊ธฐ
54/55
post-thumbnail
post-custom-banner

์˜ค๋Š˜ ํ•œ ์ผ

โœ”๏ธ ๋ธ”๋กœ๊ทธ

โœ”๏ธ ์šฐํ…Œ์ฝ” 2์ฃผ์ฐจ

  • ๋ชจ๋“  ํ…Œ์ŠคํŠธ ํ†ต๊ณผ
  • App class ๋ถ„๋ฆฌ ํ•ด์„œ BaseBallGame๊ณผ Validaion Class ์ƒ์„ฑ
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •, ์ถ”๊ฐ€
  • ApplicationTest ์ฝ”๋“œ ์ดํ•ด ์™„๋ฃŒ

โœ”๏ธ ๊ธฐํƒ€

  • Jest ์ตํžˆ๊ธฐ

๋Š๋‚€ ์ 

  • Class์—์„œ static ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ ๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ฅผ this๋กœ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•œ๋‹ค. static๋ฉ”์„œ๋“œ ์•ˆ์—์„œ๋Š” ๊ฐ™์€ Class๋‚ด์— ์ •์˜๋œ static ๋ฉ”์„œ๋“œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. static ๋ฉ”์„œ๋“œ๋Š” this๊ฐ€ Class ํ•จ์ˆ˜์— ๋ฐ”์ธ๋”ฉ ๋˜๊ณ , ์ผ๋ฐ˜์ ์ธ ๋ฉ”์„œ๋“œ๋Š” Class๋ฅผ ์ƒ์„ฑํ•œ ๊ฐ์ฒด์— this๊ฐ€ ๋ฐ”์ธ๋”ฉ ๋ผ์„œ ๋‹น์—ฐํ•œ ๊ฑด๋ฐ ์ฝ”๋“œ๋ฅผ ์“ฐ๋‹ค๋ณด๋‹ˆ๊นŒ ํ—ท๊ฐˆ๋ ธ๋‹ค.
  • Jest ์ตํ˜€๋ณด๋ ค๊ณ  ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด์•˜๋‹ค. ๊ณต์‹๋ฌธ์„œ๊ฐ€ ์˜์–ด๋กœ ๋˜์–ด์žˆ์–ด์„œ ํ•œ ์ˆจ ํฌ๊ฒŒ ์‰ฌ๊ณ , ์ •์‹  ์ฐจ๋ฆฌ๊ณ  ์ฝ๋‹ค๊ฐ€ ๋ธ”๋กœ๊ทธ์— ์ž‘์„ฑํ•œ ๊ฒƒ๋“ค ๋ณด๋ฉด์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค์„ ๋จผ์ € ํ•™์Šตํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฒฐ๊ตญ ๋Œ๊ณ  ๋Œ๋‹ค๊ฐ€ ๋‹ค์‹œ ๊ณต์‹๋ฌธ์„œ๋กœ ์™”๋‹ค. ๊ณต์‹๋ฌธ์„œ๊ฐ€ ์งฑ์ด๋‹ค. ์–ด๋– ํ•œ ๊ฒƒ์„ ์ฒ˜์Œ ํ•™์Šตํ•  ๋•Œ ๊ฒฐ๊ตญ์—๋Š” ๊ณต์‹๋ฌธ์„œ๋กœ ๋Œ์•„์˜ค๋Š” ๊ฑฐ ๊ฐ™๋‹ค.
  • ์šฐํ…Œ์ฝ” 2์ฃผ์ฐจ ApplicationTest์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ํ†ต๊ณผ๋๋‹ค. ํ•˜์ง€๋งŒ, test ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ํ†ต๊ณผ๋ผ์„œ ๊ธฐ์˜๊ธด ํ–ˆ์ง€๋งŒ ์ฐ์ฐํ•จ์ด ๋งŽ์ด ๋‚จ์•„์žˆ์—ˆ๋‹ค. Jest mock function ๋ถ€๋ถ„์„ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜๋‹ˆ test ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ํ•™์Šตํ•ด์„œ ๋งค์šฐ ๊ธฐ์˜๋‹ค. Class๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ Class๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณธ ์ ์ด ๊ฑฐ์˜ ์—†์–ด์„œ ์–ด์ œ๊นŒ์ง€ App class์— ๋‹ค ๋•Œ๋ ค๋ฐ•์•˜๋Š”๋ฐ ์˜ค๋Š˜ ๋ชฉ์ ์— ๋งž๊ฒŒ Class๋ฅผ ์กฐ๊ธˆ ๋ถ„๋ฆฌํ–ˆ๋‹ค. ๋” ๊ณต๋ถ€ํ•˜๊ณ  ๋ฆฌํŒฉํ† ๋งํ•  ๊ฒƒ์ด๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ž‘์„ฑ์˜ ์ด์ ์„ ๋ชธ์†Œ ๊ฒช์–ด๋ณด์•˜๋‹ค. ๋ฆฌํŒฉํ† ๋งํ•˜๋ฉด์„œ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒฐ๊ณผ์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ, ์—๋Ÿฌ ๋ฐœ์ƒ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งˆ์ฃผ์น  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ •๋ง ์œ ์šฉํ•˜๋‹ค. ๋‚ด ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฆฌํŒฉํ† ๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค.
  • ๋‹ค์Œ์ฃผ์— ๋ฉด์ ‘ ๋‘๊ฐœ๋ฅผ ๋ณธ๋‹ค. ์ด๋ฒˆ์ฃผ ์ดˆ๋ฐ˜์— ๊ณต๋ถ€ ํ•˜๊ธฐ๋„ ์‹ซ๊ณ  ์ง€์ณค๋Š”๋ฐ, ๋ฉด์ ‘ ๊ธฐํšŒ๊ฐ€ ์ฃผ์–ด์ ธ์„œ ๋‹ค์‹œ ์˜์ง€๊ฐ€ ๋ถˆํƒ€์˜ค๋ฅธ๋‹ค.

์˜ค๋Š˜ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ์ธ์ƒ์ ์ด์˜€๋˜ ๋ฌธ๊ตฌ.

โ€œํ…Œ์ŠคํŠธ๋Š” deterministic ํ•ด์•ผํ•œ๋‹ค. (์–ธ์ œ ์‹คํ–‰๋˜๋“  ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์•ผํ•œ๋‹ค.)โ€

์ด ๋ฌธ๊ตฌ๋ฅผ ๋ณด๊ณ  Jest์—์„œ mock function์ด ์™œ ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

post-custom-banner

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