# ํ ์คํธ ์ฝ๋๊ฐ ํ์ํ ์ด์
๊ฐ๋ฐ์์๊ฒ ํ ์คํธ ์ฝ๋๊ฐ ํ์ํ ์ด์ ๋ ์๋ 2๊ฐ์ง์ ์๋ชจ๋๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์์ ๋๋ค.
1. ๋ฐฉ๊ธ ๊ตฌํํ ๊ธฐ๋ฅ์ด ์ ๋์๊ฐ๋์ง ํ์ธํ๋ ์๊ฐ
2. ํน์ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ ๋ ๊ธฐ์กด์ ์๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊นจํธ๋ฆฌ๋์ง ํ์ธํ๋ ์๊ฐ
์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปค์ง๋ฉด ์ปค์ง์๋ก ์ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ฒํ๋๋ฐ ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค. ํนํ ์งํ๋๊ณ ์๋ ํ๋ก์ ํธ์ ํฌ์ ๋์ด์ ๋จ์ด ์ง ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ค๊ณ ํ์ ๋, ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ์๊ฐ๋ณด๋ค ๊ทธ ์ฝ๋๊ฐ ๋ค๋ฅธ ์ฝ๋์ ์ ์ํฅ์ ์ฃผ๋์ง ๋ถ์ํ๊ณ ํ์ธํ๋๋ฐ ์๊ฐ์ด ๋ ๋ง์ด ๋ค์ด๊ฐ์ฃ .
ํ ์คํธ ์ฝ๋๋ ์ด๋ฌํ ์๊ฐ์ ์ค์ฌ์ฃผ๊ณ ๊ฐ๋ฐ์์ ์์ ๊ฐ์ ๋์ฌ์ค๋๋ค. ํ ์คํธ ์ฝ๋๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ฑ์ด ๋์์ง์ฃ .
# ๋ฌด์์ ์ด๋ป๊ฒ ํ ์คํธ ํ ๊ฒ์ธ๊ฐ?
ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ฌด์์ ์ด๋ป๊ฒ ํ ์คํธ ํ ๊ฒ์ธ๊ฐ ์ ํ๋ ๊ฒ์ ๋๋ค.
ํ ์คํธ ์ฝ๋์ ๋ชฉ์ ์ ๊ตฌํ๋ ์ฝ๋์ ํ๋ฆ์ด๋ ๋ก์ง์ ํ์ธํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ฉ์์ ๊ด์ ์์ ๋ฒํผ ํด๋ฆญ๊ณผ ํค ์ ๋ ฅ ๋ฑ์ ์ด๋ฒคํธ์ ๋ฐ๋ผ UI๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๊ฐ๋๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ด ์๋ค.
<template>
<div>
<button @click="addCounter">add</button>
<p>{{ counter }}</p>
</div>
</template>
<script>
export default {
data() {
return {
counter: 0
}
},
methods: {
addCounter() {
this.counter = this.counter + 1;
}
}
}
</script>
์ ์ฝ๋๋ add ๋ฒํผ์ ํด๋ฆญํ์ ๋ counter
๊ฐ์ 1์ฉ ์ฆ๊ฐ์ํค๋ ์ฝ๋์
๋๋ค. ์ด ์ฝ๋๊ฐ ์ ๋์ํ๋์ง ์ด๋ป๊ฒ ํ์ธํ ์ ์์๊น์? ์๋ง ํ
์คํธ ์ฝ๋๊ฐ ๋ฐ๋ก ์๋ค๊ณ ๊ฐ์ ํ๋ค๋ฉด ๋๋ถ๋ถ ๋ฒํผ์ ํด๋ฆญํด๋ณด๊ณ counter
๊ฐ์ด ์ฆ๊ฐํ๋์ง ํ์ธํ ๊ฒ๋๋ค.
์ฌ๊ธฐ์ ํ ์คํธ ์ฝ๋๋ฅผ ์ ์ฉํ๋ค๊ณ ํ์ ๋ ๋ค์ 2๊ฐ์ง ์๋๋ฆฌ์ค๋ฅผ ์ ๊ฒํ ์ ์์ต๋๋ค.
1. add ๋ฒํผ์ ํด๋ฆญํ์ ๋ 'counter' ๊ฐ์ด ์ฆ๊ฐํ๋์ง ํ์ธ
2. add ๋ฒํผ์ ํด๋ฆญํ์ ๋ ์ฆ๊ฐ๋ 'counter' ๊ฐ์ด ํ๋ฉด์ ์ถ๋ ฅ๋๋์ง ํ์ธ
์ 2๊ฐ ์๋๋ฆฌ์ค ์ค ์ฌ์ฉ์ ๊ด์ ์์ ์์ฑ๋ ํ ์คํธ ์๋๋ฆฌ์ค๋ 2๋ฒ์ ๋๋ค. 1๋ฒ์ ๋จ์ํ ์ฝ๋ ๊ด์ ์์ ๋ฉ์๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋์ง ํ์ธํ๋ ์์ค์ด์ฃ .
์ด์ฒ๋ผ ํ ์คํธ ์ฝ๋๋ ๊ฐ๋ฐ์๊ฐ ๊ตฌํํ ๋ก์ง์ด๋ ์ฝ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ์ด ์๋๋ผ ํน์ ์ด๋ฒคํธ์ ์ํด ๋ณ๊ฒฝ๋ UI๋ฅผ ๊ฒ์ฆํ ์ ์์ด์ผ ํฉ๋๋ค.
# ํ ์คํ ๋๊ตฌ
ํ ์คํ ๋๊ตฌ๋ ์๊ตฌ ์ฌํญ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋ฆฌํฉํ ๋ง์ ํ ๋ ์ํํธ์จ์ด์ ์์ ์ฑ์ ๋์ฌ์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ์๋ก, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ด ํ์ ํ๋ ํ์์ด ๋ง์์๋ก ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด ๊ธฐ๋ฅ ๋ณ๊ฒฝ์์ ์ค๋ ์๋ฌ๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ ์คํ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Jest (opens new window)
- Mocha (opens new window)
- Jasmine (opens new window)
- Enzyme (opens new window)
๋ค์ ์ฑํฐ์์๋ Jest์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.