๐Ÿ’ป TIL 2022.11.12

๊น€์˜์šฐ(Yeongwoo Kim)ยท2022๋…„ 11์›” 12์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
1/1


์ด๋ฒˆ์— ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค๋ฅผ ํ•˜๋ฉด์„œ ๋‚˜๋Š” ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”์„ฑ์„ ์•Œ์•˜๋‹ค., ํ…Œ์ŠคํŠธ๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€, ์ข…๋ฅ˜๊ฐ€ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€, ์ž๋™ํ™”๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ Test

1. Test

  • ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ์ด์œ 
    • ๋งŒ๋“ค์–ด๋‘” ์ฝ”๋“œ๊ฐ€ ๊ณ„์† ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ˜‘์—… ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋ฅผ ํ•ฉ์ณค์„ ๋•Œ ๊ธฐ๋Šฅ์— ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ์‹œ ๋น ๋ฅด๊ฒŒ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

      ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š”๋ฌธ์ œ์˜ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ฒŒ ํ•ด์ค€๋‹ค.

  • ํ…Œ์ŠคํŠธ์˜ ์ข…๋ฅ˜
    • โœ… Unit Test (๋‹จ์œ„ ํ…Œ์ŠคํŠธ)
      • ์†Œํ˜• ํ…Œ์ŠคํŠธ์— ์†ํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค.
      • ํด๋ž˜์Šค ๋ฒ”์ฃผ ๋‚ด์—์„œ ์ž‘์€ ๋‹จ์œ„ (ํ•จ์ˆ˜)์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค.
      • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•˜๋ฉฐ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋œ๋‹ค๋Š” ํŠน์ง•์ด์žˆ๋‹ค.
      • ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ๊ฐ์˜ ์กฐ๊ฑด์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•œ๋‹ค.
        => ์ด๋ ‡๊ฒŒ ์ž‘์„ฑ๋œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ํ•ด๋‹น ๋กœ์ง์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.
        ๋˜ํ•œ, ์ž‘๊ฒŒ ์ชผ๊ฐœ์ง„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•ด๋‹น ๋กœ์ง์ด ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • โœ… Integration Test (ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ)
      • ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ ํ˜น์€ ํด๋ž˜์Šค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค.
      • ๋ชจ๋“ˆ ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
        => ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ณด๋‹ค ๋” ๋„“์€ ๋ฒ”์œ„์˜ ์ข…์†์„ฑ๊นŒ์ง€ ํ…Œ์ŠคํŠธํ•จ์œผ๋กœ์จ 
          ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ณด๋‹ค ์ข€ ๋” ์œ ์˜๋ฏธํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

2. Jest

  1. What is Jest

    • ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๋Š” test case ๋ฅผ ๋งŒ๋“œ๋Š” ํ…Œ์ŠคํŒ… ํ”„๋ ˆ์ž„์›Œํฌ
  2. Why use Jest

    • lint ๊ฐ€ ์ฝ”๋“œ ์Šคํƒ€์ผ์— rule ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ง€ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ์•ˆ์ •์ ์ด๊ณ  ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  3. Jest = Global function + Matcher

    • Global function

      • Jest๋Š” ์ „์—ญํ•จ์ˆ˜๋กœ afterAll, beforeEach์™€ ๊ฐ™์€ method๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ์ „์—ญํ•จ์ˆ˜๋กœ ๋‚ด๋ฆฐ๋‹ค.

      • Jest Method์— ๋Œ€ํ•œ ์ •๋ฆฌ

        https://www.js2uix.com/frontend/jest-study-step2/

    • Matcher

      • Matcher๋ž€ '์ด๊ฑฐ ๋งž์•„?' ๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋Š” ๋ฉ”์„œ๋“œ(ex toBe, toEqual ...)
      • ๊ธฐ๋Œ€ํ•œ ๊ฐ’์ด ์‹ค์ œ ๋ฐ˜ํ™˜๋œ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…
      • Matcher ํ•จ์ˆ˜ ์ข…๋ฅ˜

        https://jestjs.io/docs/using-matchers

3. ๋Š๋‚€์ 

์ตœ๊ทผ๊นŒ์ง€ ๋‚˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ์ง€๊ธˆ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ๋ฒ…์ฐฌ๋ฐ ๊ฑฐ๊ธฐ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊นŒ์ง€ ์งœ์•ผํ•˜๋‹ˆ ์ƒ์‚ฐ์„ฑ์ด ๋‚ฎ์•„์ง„๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ์— ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์˜คํžˆ๋ ค ํฌ๊ฒŒ ๋ดค์„ ๋•Œ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค. ๋‹ค์Œ์—๋Š” Jest์—์„œ Mocking์ด ์™œ ํ•„์š”ํ•œ์ง€์™€ TDD๊ธฐ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค.

profile
์ฐจ๊ทผ์ฐจ๊ทผ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค

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