TestForge | Aidevops | ๐Ÿ“Š Plogger โœ๏ธ Blog ๐Ÿ“š Docs
plogger

AI DevOps Korea

AI ์„œ๋น„์Šค ๊ฐœ๋ฐœ, ์šด์˜, ์„ฑ๋Šฅ๊ฐœ์„ ์„ ํ•˜๋‚˜์˜ ๋ฃจํ”„๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค

aidevops.kr์—์„œ LLMOps, RAG, AI Agent, ๊ด€์ธก์„ฑ, ํ‰๊ฐ€, ๋น„์šฉ-์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์‹ค์ „ ์šด์˜ ๊ด€์ ์œผ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช Test

Test

๋‹จ์œ„ ํ…Œ์ŠคํŠธ, E2E, ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ, TDD, ํ…Œ์ŠคํŠธ ์ „๋žต์ฒ˜๋Ÿผ ํ’ˆ์งˆ์„ ์‹œ์Šคํ…œ์ ์œผ๋กœ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์นดํ…Œ๊ณ ๋ฆฌ์—๋Š” ํ˜„์žฌ 21๊ฐœ์˜ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Featured In This Category

๊ฐ€์žฅ ๋จผ์ € ์ฝ๊ธฐ ์ข‹์€ ๊ธ€

ํ”Œ๋ ˆ์ดํ‚ค ํ…Œ์ŠคํŠธ ์‹ ํ˜ธ ์˜ˆ์‚ฐ ๊ด€๋ฆฌ

๋ถˆ์•ˆ์ •ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœ ์žฌ์‹œ๋„๋กœ ๋ฎ์ง€ ์•Š๊ณ  ์‹ ๋ขฐ๋„, ์†Œ์œ ๊ถŒ, ๊ฒฉ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Popular Picks

์ด ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ๋งŽ์ด ์ฝ๊ธฐ ์ข‹์€ ๊ธ€

POPULAR

Playwright๋กœ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € E2E ํ…Œ์ŠคํŠธํ•˜๊ธฐ

Playwright๋ฅผ ๋‹จ์ˆœ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ E2E ํ…Œ์ŠคํŠธ ํ”Œ๋žซํผ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ „๋žต, ์„ค์ •, selector ๊ทœ์น™, mocking, ์ธ์ฆ ์ƒํƒœ ์žฌ์‚ฌ์šฉ, flaky ๊ฐ์†Œ ๋ฐฉ๋ฒ•๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

POPULAR

k6๋กœ API ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

k6๋ฅผ ๋‹จ์ˆœํ•œ ์š”์ฒญ ๋ฐ˜๋ณต ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์„ฑ๋Šฅ ๊ฐ€์„ค์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๊ณ„, threshold ์„ค์ •, think time, workload ๋ชจ๋ธ๋ง, CI ์—ฐ๋™, ํ”ํ•œ ์‹ค์ˆ˜๊นŒ์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

POPULAR

Spring Boot ํ…Œ์ŠคํŠธ ์Šฌ๋ผ์ด์Šค: @WebMvcTest, @DataJpaTest

Spring Boot ํ…Œ์ŠคํŠธ ์Šฌ๋ผ์ด์Šค๋ฅผ ๋‹จ์ˆœ ์–ด๋…ธํ…Œ์ด์…˜ ๋ชจ์Œ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ์™€ ์‹คํ–‰ ๋น„์šฉ ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. @WebMvcTest, @DataJpaTest, @JsonTest, @RestClientTest๋ฅผ ์–ธ์ œ ์“ฐ๊ณ  ์–ธ์ œ @SpringBootTest๊ฐ€ ๋” ๋งž๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Reading Flow

์ด ์ˆœ์„œ๋กœ ์ฝ์–ด๋ณด๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค

STEP 1

๋ฆด๋ฆฌ์Šค ๊ฒŒ์ดํŠธ์šฉ ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ ์„ค๊ณ„

๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐฐํฌ ์ง์ „์— ๋Œ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ๊ฒŒ์ดํŠธ์—์„œ ๊ผญ ์‚ด์•„ ์žˆ์–ด์•ผ ํ•  ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณ ๋ฅผ์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

STEP 2

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ

ํ…Œ์ŠคํŠธ ์‹คํŒจ์˜ ๋งŽ์€ ์›์ธ์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ, ๊ณต์œ , ์ •๋ฆฌ ๊ทœ์น™์ด ์—†์œผ๋ฉด ํ…Œ์ŠคํŠธ๋Š” ์ ์  ๋ถˆ์•ˆ์ •ํ•ด์ง‘๋‹ˆ๋‹ค.

STEP 3

ํ•ฉ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์นด๋‚˜๋ฆฌ ํ…Œ์ŠคํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ

ํ…Œ์ŠคํŠธ๋Š” ๋ฐฐํฌ ์ „์—๋งŒ ๋๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜์—์„œ ํ•ฉ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์นด๋‚˜๋ฆฌ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์–ด์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Key Tags

์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ํ•ต์‹ฌ ํƒœ๊ทธ

Archive

์ „์ฒด ๊ธ€

ํ”Œ๋ ˆ์ดํ‚ค ํ…Œ์ŠคํŠธ ์‹ ํ˜ธ ์˜ˆ์‚ฐ ๊ด€๋ฆฌ

๋ถˆ์•ˆ์ •ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœ ์žฌ์‹œ๋„๋กœ ๋ฎ์ง€ ์•Š๊ณ  ์‹ ๋ขฐ๋„, ์†Œ์œ ๊ถŒ, ๊ฒฉ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค ๊ฒŒ์ดํŠธ์šฉ ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ ์„ค๊ณ„

๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐฐํฌ ์ง์ „์— ๋Œ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ๊ฒŒ์ดํŠธ์—์„œ ๊ผญ ์‚ด์•„ ์žˆ์–ด์•ผ ํ•  ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณ ๋ฅผ์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ

ํ…Œ์ŠคํŠธ ์‹คํŒจ์˜ ๋งŽ์€ ์›์ธ์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ, ๊ณต์œ , ์ •๋ฆฌ ๊ทœ์น™์ด ์—†์œผ๋ฉด ํ…Œ์ŠคํŠธ๋Š” ์ ์  ๋ถˆ์•ˆ์ •ํ•ด์ง‘๋‹ˆ๋‹ค.

ํ•ฉ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์นด๋‚˜๋ฆฌ ํ…Œ์ŠคํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ

ํ…Œ์ŠคํŠธ๋Š” ๋ฐฐํฌ ์ „์—๋งŒ ๋๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜์—์„œ ํ•ฉ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ์นด๋‚˜๋ฆฌ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์–ด์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค ํ›„๋ณด ํ…Œ์ŠคํŠธ ์ปท๋ผ์ธ ์„ค๊ณ„

๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค ๋Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ํ›„๋ณด์—์„œ ์–ด๋–ค ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผ ๊ธฐ์ค€์œผ๋กœ ์‚ผ์•„์•ผ ํ• ์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ•™์Šต ๊ฒฝ๋กœ: ์ž…๋ฌธ๋ถ€ํ„ฐ ๊ณ ๊ธ‰๊นŒ์ง€

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ณ„์•ฝ ํ…Œ์ŠคํŠธ ๊ฒฝ๊ณ„, flaky ์ œ์–ด, ํ”„๋กœ๋•์…˜ ํ’ˆ์งˆ ์ „๋žต๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ํ…Œ์ŠคํŠธ ๋กœ๋“œ๋งต์ž…๋‹ˆ๋‹ค.

Spring Boot ํ…Œ์ŠคํŠธ ์Šฌ๋ผ์ด์Šค: @WebMvcTest, @DataJpaTest

Spring Boot ํ…Œ์ŠคํŠธ ์Šฌ๋ผ์ด์Šค๋ฅผ ๋‹จ์ˆœ ์–ด๋…ธํ…Œ์ด์…˜ ๋ชจ์Œ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ์™€ ์‹คํ–‰ ๋น„์šฉ ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. @WebMvcTest, @DataJpaTest, @JsonTest, @RestClientTest๋ฅผ ์–ธ์ œ ์“ฐ๊ณ  ์–ธ์ œ @SpringBootTest๊ฐ€ ๋” ๋งž๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Mock, Stub, Spy ํ…Œ์ŠคํŠธ ๋”๋ธ” ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Mock, Stub, Spy๋ฅผ ์–ธ์ œ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ๊ฒ€์ฆ๊ณผ ์ƒํ˜ธ์ž‘์šฉ ๊ฒ€์ฆ์˜ ์ฐจ์ด, ๊ณผ๋„ํ•œ mocking์˜ ์œ„ํ—˜, fake์™€์˜ ์„ ํƒ ๊ธฐ์ค€๊นŒ์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

REST Assured API ํ…Œ์ŠคํŠธ ์ „๋žต ๊ฐ€์ด๋“œ

REST Assured๋ฅผ ์‚ฌ์šฉํ•ด Java ๊ธฐ๋ฐ˜ API๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฒ€์ฆํ• ์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ/์‘๋‹ต ์˜ˆ์ œ๋ณด๋‹ค ๊ณ„์•ฝ ๊ฒ€์ฆ, ์ธ์ฆ ํ๋ฆ„, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ฒฝ๊ณ„์— ์ดˆ์ ์„ ๋งž์ถ˜ ์‹ค๋ฌดํ˜• ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

k6๋กœ API ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

k6๋ฅผ ๋‹จ์ˆœํ•œ ์š”์ฒญ ๋ฐ˜๋ณต ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์„ฑ๋Šฅ ๊ฐ€์„ค์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๊ณ„, threshold ์„ค์ •, think time, workload ๋ชจ๋ธ๋ง, CI ์—ฐ๋™, ํ”ํ•œ ์‹ค์ˆ˜๊นŒ์ง€ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์ „๋žต๊ณผ ํ™˜๊ฒฝ ์‹ ๋ขฐ๋„

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ E2E๊นŒ์ง€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, ๊ณ ์ • ์ƒ˜ํ”Œ, ๋งˆ์Šคํ‚น, ์ดˆ๊ธฐํ™” ์ „๋žต์„ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์‹ ๋ขฐ๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š”์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Vue Testing Library ์‹ค์ „ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

Vue Testing Library์™€ Vitest๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋”๋ง ๊ฒฐ๊ณผ, ์ด๋ฒคํŠธ, ๋น„๋™๊ธฐ UI, Pinia/Router ์—ฐ๋™, ๊ณผ๋„ํ•œ ๊ตฌํ˜„ ์˜์กด์„ ํ”ผํ•˜๋Š” ๊ธฐ์ค€๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

React Testing Library ์‹ค์ „ ์„ค๊ณ„ ๊ฐ€์ด๋“œ

React Testing Library๋ฅผ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. query ์šฐ์„ ์ˆœ์œ„, ์ƒํ˜ธ์ž‘์šฉ ํ…Œ์ŠคํŠธ, ๋น„๋™๊ธฐ UI, provider wrapper, ๊ณผ๋„ํ•œ mocking ํšŒํ”ผ๊นŒ์ง€ ์‹ค๋ฌด ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

TDD ์‹ค์ฒœ ๊ฐ€์ด๋“œ: Red-Green-Refactor

TDD๋ฅผ ์ˆœ์„œ ์•”๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์„ค๊ณ„ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋กœ ๋ณด๊ณ , Red-Green-Refactor์˜ ์˜๋ฏธ, ์ž˜ ๋งž๋Š” ๋ฌธ์ œ์™€ ๊ณผํ•œ ๋ฌธ์ œ, ํŒ€์—์„œ ์ง€์† ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ˜„๋Œ€์  ํ…Œ์ŠคํŠธ ์ „๋žต: Pyramid, Contract, E2E์˜ ๊ท ํ˜•

ํ…Œ์ŠคํŠธ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋Œ€์‹  ์‹ ๋ขฐ๋„๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ด€์ ์—์„œ unit, integration, contract, E2E์˜ ์—ญํ•  ๋ถ„๋ฆฌ, flaky test ์ œ์–ด, CI ๊ฒŒ์ดํŠธ, ์†Œ์œ ๊ถŒ๊ณผ ์šด์˜ ์ •์ฑ…์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Playwright๋กœ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € E2E ํ…Œ์ŠคํŠธํ•˜๊ธฐ

Playwright๋ฅผ ๋‹จ์ˆœ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ E2E ํ…Œ์ŠคํŠธ ํ”Œ๋žซํผ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ „๋žต, ์„ค์ •, selector ๊ทœ์น™, mocking, ์ธ์ฆ ์ƒํƒœ ์žฌ์‚ฌ์šฉ, flaky ๊ฐ์†Œ ๋ฐฉ๋ฒ•๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Cypress E2E ํ…Œ์ŠคํŠธ ์ „๋žต ๊ฐ€์ด๋“œ

Cypress๋ฅผ ๋‹จ์ˆœ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ํ๋ฆ„ ๊ฒ€์ฆ ๋„๊ตฌ๋กœ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ selector, ๋„คํŠธ์›Œํฌ ์ œ์–ด, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ, flaky test ๊ฐ์†Œ ์ „๋žต๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Jest๋กœ JavaScript ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑํ•˜๊ธฐ

Jest ๋ฌธ๋ฒ• ์†Œ๊ฐœ๋ฅผ ๋„˜์–ด์„œ ๋ฌด์—‡์„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š”์ง€, Mock๋ฅผ ์–ด๋””๊นŒ์ง€ ์จ์•ผ ํ•˜๋Š”์ง€, ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ ๊ธฐ์ค€์„ ์‹ค๋ฌด ๊ด€์ ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.