ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๋์์ธ ํจํด์ ๋ํด ์์๋ณด์. ๋ฆฌํฉํ ๋งํ๋ฉฐ ์ ์ฉํด๋ณด๋ฉฐ ๊ฒฐ๊ตญ์๋ ์ข์ ํ์ง์ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๋ค.
- ๋จ์(unit)
- ํน์ ์กฐ๊ฑด์์ ์ด๋ป๊ฒ ์๋ํด์ผ ํ ์ง ์ ์
- 'ํจ์'๋ก ํํํ๋ค.
- ์ค๋น, ์คํ, ๋จ์ธ ํจํด์ ๋ฐ๋ฅธ๋ค.
์ด๋ค ํจ์๋ฅผ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด๋ณธ๋ค๋ฉด, ๊ธฐ๋ฅ์ ํ ์คํธํ ์ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ์ : ํ ์คํธํ ์ ์๋ ๋จ๊ณ๐
- ๋ น์ : ํ ์คํธ์ ํต๊ณผํ ์ ์๋ ๋จ๊ณ๐ ํจ์์ ๊ธฐ๋ฅ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ๋ฆฌํฉํฐ :
๋ด๊ฐ ์์ฑํ ์ฝ๋๊ฐ ํ์คํ๋ค
๋ผ๊ณ ํ ์ ์๋ ๋จ๊ณ๐ ์ฝ๋ ํ์ง์ด ๋์์ง๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์๋ ์ฌ์ค๋ฏผ
์ด๋ผ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉ
- ์คํ ๋์ผ๋ก (๋ธ๋ผ์ฐ์ ์ ์ง์ ์ฌ๋ฆฐ๋ค. ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉํ์ง ์๋๋ค.)
- ์นด๋ฅด๋ง (์๋ํ ํด์ค๋ค. ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉํ๋ค.)
- ๋จผ์ ์คํ ๋์ผ๋ก ์ผ๋ก ์ค์น๋ฅผ ํด๋ณด์.
- ์ฌ์ค๋ฏผ, ์์ค, ํ ์คํธ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด๋ค.
- ์คํ ๋ ์ผ๋ก ์ผ๋ก ์ค์นํ ์์ค๋ฏผ์ HTML ํ์ผ์ด ํ ์คํธ ๋ฌ๋๋ค.
- โญ๏ธ ์์ ๋ชจ๋ ํจํด
- ์ฆ์ ์คํ ํจ์ ํจํด
- ์ฑ๊ธํค์ด๋ค.
- ๋จ์ผ ์ฑ
์ ์์น์ ๋ฐ๋ผ ๋ชจ๋์ ํ ๊ฐ์ง ์ญํ ๋ง ํ๋ค.
- ๊ทธ ์ญํ ๋ง ์ง์คํจ์ผ๋ก์ ๋ชจ๋์ ๋์ฑ ํผํผํ๊ฒ ๋ง๋ค๊ณ ํ ์คํธ ํ๊ธฐ์๋ ์ฝ๋ค.
- ๋ชจ๋ ์์ ์ด ์ฌ์ฉํ ๊ฐ์ฒด๊ฐ ์๋ค๋ฉด ์์กด์ฑ ์ฃผ์
ํํ๋ก ์ ๊ณตํ๋ค.
- ํ ์คํธ๊ฐ ์ฝ๋ค.
- ํฉํ ๋ฆฌ ์ฃผ์ ํํ๋ก ์ ๊ณตํ๋ค.
- ๋จ์ ํ
์คํธ ํจํด์ผ๋ก ํ
์คํธํ๊ธฐ ๊ณค๋ํ ์ปดํฌ๋ํธ๋ฅผ ๋์ฒดํ์ฌ ํ
์คํธํ๋ค. ํน์ ๋์์ ํ๋ด๋ง ๋ผ๋ฟ์ด์ง๋ง ํ
์คํธํ๊ธฐ๋ ์ ํฉํ๋ค.
- ๋๋ฏธ : ์ธ์๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ์ฌ์ฉ
- ์คํ : ๋๋ฏธ๋ฅผ ๊ฐ์ ํ์ฌ ์ค์ ๋์ํ๊ฒ๋ ๋ง๋๋๊ฒ. ๋ฆฌํด๊ฐ์ ํ๋ ์ฝ๋ฉํ๋ค.
- ์คํ์ด : ์คํ ๊ณผ ์ ์ฌํ๋ค. ๋ด๋ถ์ ์ผ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๋ ์ถ๊ฐ ๊ธฐ๋ฅ
- ํ์ดํฌ : ์คํ ์์ ๋ฐ์ ํ ์ค์ ์ฝ๋. ์ด์์์๋ ์ฌ์ฉํ ์ ์๋ค.
- ๋ชฉ : ๋๋ฏธ, ์คํ , ์คํ์ด๋ฅผ ํผํฉํ ํํ์ด๋ค.
์์ค๋ฏผ์์๋ ์ด๋ฐ ํ ์คํธ ๋๋ธ์ '์คํ์ด์'๋ผ๊ณ ๋ถ๋ฅธ๋ค.
it('ํด๋ฆญ ์ด๋ฒคํธ ๋ฐ์์ increseAndUpdateView์คํ', () => {
spyon(view, 'increseAndUpdateView')
//click !
expect(view.increseAndUpdateView).toHaveBeenCalled()
})
ํด๋ฆญ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฐ์ธ๋ฉํ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ์ฃผ์ ๋ฐ์ โ๏ธ