3. ํ•จ์ˆ˜

· โ˜• 3 min read · ๐Ÿ‘€... views

3. ํ•จ์ˆ˜

์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ

์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ์ƒ๊ธธ๋งŒํผ ํ•จ์ˆ˜๊ฐ€ ์ปค์ ธ์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค.

ํ•จ์ˆ˜์—์„œ ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ค€์€ 1๋‹จ์ด๋‚˜ 2๋‹จ์„ ๋„˜์–ด์„œ๋ฉด ์•ˆ ๋œ๋‹ค.

๋‹น์—ฐํ•œ ๋ง์ด์ง€๋งŒ, ๊ทธ๋ž˜์•ผ ํ•จ์ˆ˜๋Š” ์ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.


ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด๋ผ

ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผ ํ•œ๋‹ค.


ํ•จ์ˆ˜ ๋‹น ์ถ”์ƒํ™” ์ˆ˜์ค€์€ ํ•˜๋‚˜๋กœ

ํ•จ์ˆ˜๊ฐ€ ํ™•์‹คํžˆ ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜ ๋‚ด ๋ชจ๋“  ๋ฌธ์žฅ์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.

ํ•œ ํ•จ์ˆ˜ ๋‚ด์— ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์„ž์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค.

ํŠน์ • ํ‘œํ˜„์ด ๊ทผ๋ณธ ๊ฐœ๋…์ธ์ง€, ์•„๋‹ˆ๋ฉด ์„ธ๋ถ€์‚ฌํ•ญ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ค์šด ํƒ“์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง€๋ฉด ์„ธ๋ถ€์‚ฌํ•ญ์— ์„ธ๋ถ€์‚ฌํ•ญ์„ ๋” ๋ถ™์ด๋Š” ๋ณต์žกํ•œ ํ•จ์ˆ˜๊ฐ€ ๋œ๋‹ค.


์œ„์—์„œ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๊ธฐ ๊ทœ์น™

์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ์ฝํ˜€์•ผ ์ข‹๋‹ค.

ํ•œ ํ•จ์ˆ˜ ๋‹ค์Œ์—๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•œ ๋‹จ๊ณ„ ๋‚ฎ์€ ํ•จ์ˆ˜๊ฐ€ ์˜จ๋‹ค,

์ฆ‰ ์œ„์—์„œ ์•„๋ž˜๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ฝ์œผ๋ฉด ํ•จ์ˆ˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•œ ๋ฒˆ์— ํ•œ ๋‹จ๊ณ„์”ฉ ๋‚ฎ์•„์ง„๋‹ค.


์„œ์ˆ ์ ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

testableHtml -> SetupTeardownIncluder ์ข‹์€ ์ด๋ฆ„์ด ์ฃผ๋Š” ๊ฐ€์น˜๋Š” ๊ฐ•์กฐํ•ด๋„ ๋ชจ์ž๋ฅด์ง€ ์•Š๋‹ค.


ํ•จ์ˆ˜ ์ธ์ˆ˜

ํ•จ์ˆ˜์—์„œ ์ด์ƒ์ ์ธ ์ธ์ˆ˜ ๊ฐœ์ˆ˜๋Š” 0๊ฐœ(๋ฌดํ•ญ) ์ด๋‹ค.

๋‹ค์Œ์€ 1๊ฐœ, ๋‹ค์Œ์€ 2๊ฐœ์ด๋‹ค. 3ํ•ญ์€ ๊ฐ€๋Šฅํ•˜๋ฉด ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ณ , 4ํ•ญ ์ด์ƒ์ผ ๊ฒฝ์šฐ์—๋Š” ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์–ด๋„ ์‚ฌ์šฉํ•˜๊ธธ ์ง€์–‘ํ•œ๋‹ค.


๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ์ผ์œผํ‚ค์ง€ ๋งˆ๋ผ!

ํ•จ์ˆ˜์—์„œ ํ•œ ๊ฐ€์ง€๋ฅผ ํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ•˜๊ณ ์„  ๋‚จ ๋ชฐ๋ž˜ ๋‹ค๋ฅธ ์ผ์„ ํ•œ๋‹ค.

์ด๋Š” ๋•Œ๋กœ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ช…๋ น๊ณผ ์กฐํšŒ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ผ

ํ•จ์ˆ˜๋Š” ๋ญ”๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ญ”๊ฐ€์— ๋‹ตํ•˜๊ฑฐ๋‚˜ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ์ฒด ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ๊ฐ์ฒด ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋‹ค. ๋‘˜ ๋‹ค ํ•˜๋ฉด ํ˜ผ๋ž€์„ ์ดˆ๋ž˜ํ•œ๋‹ค.


์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

if ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ๋ฝ‘์•„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋ณด๋‹ค๋Š” try/catch ๋ฌธ์„ ์‚ฌ์šฉํ•ด๋ผ,

ํ•˜์ง€๋งŒ try/catch ๋ฌธ๋„ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜ ์•ˆ์— ์ •์ƒ ๋™์ž‘๊ณผ ์˜ค๋ฅ˜ ๋™์ ์„ ๋’ค์„ž๊ธฐ ๋•Œ๋ฌธ์— catch ๋ถ€๋ถ„์„ ๋ณ„๋„์˜ ํ•จ์ˆ˜๋กœ ๋ฝ‘์•„ ๋‚ด๋Š” ํŽธ์ด ์ข‹๋‹ค.


๋ฐ˜๋ณตํ•˜์ง€ ๋งˆ๋ผ

(DRY : Don't Repeat Yourself)
์ฝ”๋“œ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•˜๋‚˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ณ€ํ•˜๋ฉด ๋„ค ๊ณณ์ด๋‚˜ ์†๋ด์•ผ ํ•œ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ๋„ ๋ช‡ ๋ฐฐ๋‚˜ ๋†’๋‹ค.


๊ฒฐ๋ก 

์‹œ์Šคํ…œ์€ ํ’€์–ด๋‚˜๊ฐ€์•ผํ•  ํ•˜๋‚˜์˜ ํฐ ์ด์•ผ๊ธฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜๋ฅผ ์ž˜ ๋งŒ๋“œ๋Š” ๊ธฐ๊ต๋„ ์ค‘์š”ํ•˜์ง€๋งŒ,

๋ถ„๋ช…ํ•˜๊ณ  ์ •ํ™•ํ•œ ์–ธ์–ด๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋งž์•„๋–จ์–ด์ ธ์•ผ ์ด์•ผ๊ธฐ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค๋Š” ์‚ฌ์‹ค ๋˜ํ•œ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.


์‚ฌ๊ฒฌ์„ ๋ง๋ถ™์ด๋ฉด…?

์ด๋ฒˆ ์žฅ์€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์–˜๊ธฐ์˜€๋‹ค. ์ฃผ ์–ธ์–ด๊ฐ€ ์ž๋ฐ”์ธ ๋‚˜์—๊ฒŒ๋Š” ๋ฉ”์†Œ๋“œ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ฝ์œผ๋ฉด์„œ ๊ฐ€์žฅ ๊ธฐ์–ต์— ๋‚จ๋Š” ๋ถ€๋ถ„์€ ์•„๋ฌด๋ž˜๋„ ํ•จ์ˆ˜ ์ธ์ˆ˜ ์ด ๋ถ€๋ถ„์ธ๋ฐ, ์ด์œ ์ธ ์ฆ‰

์ „ ํšŒ์‚ฌ์—์„œ ์ฝ”์–ด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ฉ”์†Œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฌด๋ ค 10๊ฐœ ์˜€๋‹ค!!!

๊ธธ์ด๋„ ๊ธธ์–ด์„œ ๋ณผ ๋•Œ๋งˆ๋‹ค ์–ด๋ ค์šด ์ฝ”๋“œ์˜€๊ณ , ์•„์— ๋Œ€๋†“๊ณ  null ์ด ๋“ค์–ด๊ฐ€๋Š” ์ธ์ˆ˜๋„ ์žˆ์—ˆ๋‹ค.

์ •๋ง ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค๊ณ  ์–ด๋ ค์›Œ์„œ ํ•ญ์ƒ ์ €๊ฑธ ์ชผ๊ฐœ๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋Š”๋ฐ…

ํ…Œ์ŠคํŠธ๋„ ์—†๊ณ  ๊ทธ ๋ถ€๋ถ„์„ ๊ฑด๋“œ๋ฆด ๊นœ๋ƒฅ(?)์ด ์•ˆ๋˜์„œ ๊ฒฐ๊ตญ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ชป ๊ฑด๋“œ๋ฆฌ๊ณ  ๋‚˜์™”๋‹ค.

๊ทธ ํ›„์—๋Š” ์œ ๋‹› ํ…Œ์ŠคํŠธ๋„ ์ง„ํ–‰ํ•˜๊ณ  ๋‚˜๋ฆ„ ์žฌ๋ฐŒ๊ฒŒ ํ•˜๊ณ  ์žˆ๋‹ค.

์ฑ…์—์„œ๋„ ๋‚˜์˜ค์ง€๋งŒ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด assertEqual() ์„ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. expected ์™€ actual ์˜ ์ˆœ์„œ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ณค ํ•˜๋Š”๋ฐ

๋‹คํ–‰์ด๋„ ์ธํ…”๋ฆฌ ์ œ์ด์—์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…(?) ์ด๋ž„๊นŒ ๊ทธ๋Ÿฐ๊ฒŒ ์ž˜ ๋‚˜์˜ค๋”๋ผ

Share on

snack
WRITTEN BY
snack
Web Programmer


What's on this Page