userEvent๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ ํ…Œ์ŠคํŠธ

date
2025-10-18
order
9

userEvent์™€ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ

fireEvent : userEvent์ฒ˜๋Ÿผ ๋ฆฌ์•กํŠธ ํ…Œ์ŠคํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ DOM ์ด๋ฒคํŠธ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” api

userEvent vs fireEvent ?

fireEvent๋Š” "ํ•ด๋‹น ์ด๋ฒคํŠธ๋งŒ ๋””์ŠคํŒจ์น˜" ํ•œ๋‹ค.

์ด๊ฒŒ ๋ฌด์Šจ๋œป์ด๋ƒ๋ฉด, userEvent๋กœ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค๋ฉด mouseOver -> mouseMove -> mouseDown -> mouseUp -> click ์˜ ์ˆœ์„œ๋Œ€๋กœ ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ๋•Œ ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, fireEvent๋Š” ๋‹จ์ˆœํžˆ click ์ด๋ฒคํŠธ๋งŒ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ.

์ด์ „ ์‹œ๊ฐ„์— ํ…์ŠคํŠธ ์ธํ’‹์„ ํด๋ฆญํ•˜๋ฉด onFocus๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ, ์ด ๋•Œ ์‚ฌ์šฉํ•œ๊ฒƒ์€ userEvent. ๋งŒ์•ฝ fireEvent๋กœ ํ…์ŠคํŠธ ์ธํ’‹์„ ํด๋ฆญํ•œ๋‹ค๋ฉด onFocus๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ž˜์„œ ๋˜๋„๋ก userEvent ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด userEvent๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ : ex.scroll