๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

"Testing Library" ํƒœ๊ทธ๋กœ ์—ฐ๊ฒฐ๋œ 1๊ฐœ ๊ฒŒ์‹œ๋ฌผ๊ฐœ์˜ ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํƒœ๊ทธ ๋ณด๊ธฐ

ยท ์•ฝ 3๋ถ„

ํ…Œ์ŠคํŒ… ์ „๋žต#

HTML ๊ตฌ์กฐ ํ…Œ์ŠคํŠธ#

์ „๋žต#

  • HTML์„ ๋ฌธ์ž์—ด๋กœ ์ง์ ‘ ๋น„๊ต

  • diff๊ฐ€ ์šฉ์ดํ•˜๋„๋ก HTML ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ

  • ex) https://github.com/rayrutjes/diffable-html

๋‹จ์ #

  • ์‹ค์ œ UI ๊ฒฐ๊ณผ๋ฌผ ํ™”๋ฉด๊ณผ HTML์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

  • HTML์ด ๋‹ฌ๋ผ๋„ ๊ฒฐ๊ณผ๋ฌผ์ด ๋™์ผํ• ์ˆ˜๋„ ์žˆ๊ณ , ๊ทธ ๋ฐ˜๋Œ€๋„ ๊ฐ€๋Šฅ

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋งŒ ๋ณด๊ณ  ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค

์Šค๋ƒ…์ƒท ํ…Œ์ŠคํŠธ#

์ „๋žต#

  • ํ˜„์žฌ์˜ HTML ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ํŒŒ์ผ๋กœ ์ €์žฅ, ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์‹คํŒจ

  • ์‹ค์ œ ๊ฒฐ๊ณผ๋Š” ํŒŒ์ผ ๋‚ด๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค

  • HTML์„ ์ง์ ‘ ๋น„๊ตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๋‹ค

  • ํšŒ๊ท€ ํ…Œ์ŠคํŠธ์˜ ์—ญํ• 

๋‹จ์ #

  • ํ…Œ์ŠคํŠธ์˜ ์˜๋„๊ฐ€ ์—†๋‹ค

  • ์Šค๋ƒ…์ƒท ๋ฐ์ดํ„ฐ์˜ Diff๋ฅผ ๋ด๋„ ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค

  • ์Šต๊ด€์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด์„œ ํ…Œ์ŠคํŠธ์˜ ์‹ ๋ขฐ์„ฑ์ด ๊ฐ์†Œ

์‹œ๊ฐ์  ํ…Œ์ŠคํŠธ#

์‹œ๊ฐ์  ํ…Œ์ŠคํŠธ์˜ ์–ด๋ ค์›€#

  • ์ž๋™ํ™”๊ฐ€ ์–ด๋ ต๋‹ค

  • ์Šคํฌ๋ฆฐ์ƒท์„ ์ฐ์–ด๋‚ด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํ…Œ์ŠคํŠธ์˜ ๋ชฉ์ ์— ๋ถ€ํ•ฉ

์Šคํ† ๋ฆฌ๋ถ#

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ถ„๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ UI๋งŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค

  • ์ปดํฌ๋„ŒํŠธ ๋ฐฉ์‹์˜ ๊ฐœ๋ฐœ์— ์–ด์šธ๋ฆฐ๋‹ค

์‹œ๊ฐ์  ํšŒ๊ท€ ํ…Œ์ŠคํŠธ#

  • AI ๊ธฐ์ˆ  ํ™œ์šฉ

  • ์Šคํ† ๋ฆฌ๋ถ / Cypress / ์…€๋ ˆ๋‹ˆ์›€๊ณผ ์—ฐ๋™ํ•ด์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • Percy, applitools, Chromatic

์‹œ๊ฐ์  ์š”์†Œ์™€ ๊ธฐ๋Šฅ์  ์š”์†Œ ๋ถ„๋ฆฌ#

dom-testing-library#

Introduction | Testing Library

  • CSS ์…€๋ ‰ํ„ฐ๋ฅผ ์ง€์–‘ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ ์œ„์ฃผ์˜ ์…€๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉ

    • getByText , getByLabelText , getByAltText , getByTitle , getByValue
  • ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” data-test-id ์†์„ฑ์„ ์‚ฌ์šฉ

    • getByTestId
  • ์ด๋ฒคํŠธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

    • fireEvent
  • DOM์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํŠน์ • ๋‹จ์–ธ(Assertion)์ด ์„ฑ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ - ๋น„๋™๊ธฐ ๋กœ์ง ํ…Œ์ŠคํŠธ

    • wait , waitForElement , waitForDomChange

jest-dom#

testing-library/jest-dom

  • DOM๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋งค์ณ๋ฅผ ์ œ๊ณต

    • toBeDisable

    • toBeVisible

    • toHaveTextContent

    • toHaveStyle

    • toHaveClass

    • ...


Ajax Mocking#