Skip to content

๐Ÿ’ปํ…Œ์ŠคํŠธ

๋“€ํžˆ edited this page Aug 22, 2024 · 1 revision

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์„œ์ˆ ํ•œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ๋Š” ์™œ ํ•ด์•ผํ• ๊นŒ์š”? ํฐ ์ด์œ ๋กœ๋Š” ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ, ๋ฆฌํŒฉํ† ๋ง ์ง€์›, ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€์ฆ, ๋ฌธ์„œํ™”, ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ๋“ฑ.. ๋‹ค์–‘ํ•œ ๋ฐฉํ–ฅ์—์„œ์˜ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 3๋‹จ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Tests)

๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํ•จ์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์˜ ์˜ˆ์ƒ ๋™์ž‘์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. API๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด, KOIN_API_V2์—์„œ test ํŒจํ‚ค์ง€์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์€ test ํŒจํ‚ค์ง€๋ฅผ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Tests)

์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด๋‚˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ DB๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜๋Š” ๋“ฑ ์‹ค์ œ ์ž์›๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ Swagger๋ฅผ ์ด์šฉํ•˜์—ฌ API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‹ค์ œ DB๋ฅผ ํ™•์ธํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ์™€์˜ ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ณ , ๋ฐฑ์—”๋“œ ์ธก์—์„œ๋„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•  ์‚ฌํ•ญ ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์˜จ๋ณด๋”ฉ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

UI ํ…Œ์ŠคํŠธ(UI Tests)

์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์›น/์•ฑ ์‚ฌ์šฉ ์‹œ, UI๊ฐ€ ์˜ˆ์ƒ ์ž‘๋™์„ ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

์ด ํ…Œ์ŠคํŠธ๋Š” Stage ์„œ๋ฒ„๋‚˜, Production ์„œ๋ฒ„์—์„œ ์ง„ํ–‰ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

ํŒ€ ๋‹จ์œ„์˜ ์Šคํ”„๋ฆฐํŠธ ์ž‘์—…์ด ์ข…๋ฃŒ๋˜์–ด ๊ธฐ๋Šฅ์„ ๋ฐฐํฌํ•œ ์ดํ›„, ํŒ€๋ณ„๋กœ ๋‚˜๋ˆ„์–ด QA๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

์ฃผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋  ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘์  ๋œฏ์–ด๋ณด์‹œ๋Š” ๊ฑธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋ช…๋ช…๋ฒ•์€ ํ˜„์žฌ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ปจ๋ฒค์…˜์€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ปจ๋ฒค์…˜์ด ํ™•์ •๋˜๋ฉด ์ˆ˜์ • ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

1. @DisplayName์„ ์ด์šฉํ•œ๋‹ค.

๊ธฐ์กด ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. @Test ์–ด๋…ธํ…Œ์ด์…˜ ์•„๋ž˜์— @DisplayName์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

DisplayName ์ƒํ™ฉ์— ๋งž๋Š” ์˜์–ด ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์„ ์ง€์–ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ex) @DisplayName("๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค") void createReview

2. ํ•œ๊ธ€๊ณผ ์–ธ๋”๋ฐ”๋ฅผ ์ด์šฉํ•œ๋‹ค.

์ตœ๊ทผ ์ ์šฉ๋œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ์ž์ฒด์— ํ•œ๊ธ€๊ณผ ์–ธ๋”๋ฐ”๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ง์ ‘์ ์ธ ์„ค๋ช…์„ ํ•œ๊ธ€ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์„ ์ง€์–ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ex) void ์ƒˆ๋กœ์šด_๋ฆฌ๋ทฐ๋ฅผ_์ž‘์„ฑํ•œ๋‹ค

Clone this wiki locally