Intro
ํ ์คํธ๊ฐ ์คํ์ด ์๋ผ์ ์๊ฐ์ ๋ง์ด ์ก์๋จน์๋ค.
dependency ์ค์น๊ฐ ์ ๋๋ก ์๋ ๊ฒ์ด ์์ธ์ธ ๊ฒ ๊ฐ๋ค. node_modules, package-lock.json์ ์ง์ฐ๊ณ ๋ ธ๋ ์บ์ฌ๋ ๋ค ์ง์ด ํ ๋ค์ ์ค์นํ๋๊น ์ ์ ๋์ํ์๋ค.
์ค๋ ํ์ตํ ๋ด์ฉ
: ํ ์คํธ
๐ฉ๐ป ํ ์คํธ ์์ฑ
Test suite์ ๊ฐ test ์ ๋ชฉ์ ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ธฐ์ ํด์ฃผ์ธ์.
๊ฐ ์ปดํฌ๋ํธ ๋ด๋ถ์ ์๋ ํจ์๋ค์ด๋, Util ํจ์๋ค์ ํ ์คํธ ํ ์ ์๊ฒ ๋ถ๋ฆฌํฉ๋๋ค.
ํ ์คํธ๋ฅผ ์์ฑํ ๋, ~~.test.js ์ฒ๋ผ ๋ ๊ฐ์ ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ค.
jest๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋๋ ํ ์คํ ํ๋ ์์ํฌ์ด๋ค.
์คํํ ๋ jest ๋ช ๋ น์ด๋ก ํ ์คํธํ ์ ์๋ค.

- jset.config.js
module.exports = {
clearMocks: true,
collectCoverage: true,
collectCoverageFrom: [
"**/utils/*.js" // ํ
์คํธ ๋์ ํ์ผ
],
transform: {
'^.+\\.js$': 'babel-jest'
},
testEnvironment: "node",
testMatch: [
"**/__tests__/**/*.[jt]s?(x)",
"**/?(*.)+(spec|test).[tj]s?(x)"
],
};
config ํ์ผ๋ก jest ์ค์ ์ ์์ ํ ์ ์๋ค.
์์)
- util/uniqueArray.js
export default function uniqueArray(list) {
return Array.from(new Set(list));
}
- uniqueArray.test.js
import uniqueArray from '../utils/uniqueArray.js';
describe('uniqueArray.js', () => {
test('์ค๋ณต ์ ๊ฑฐ ํ์ธ', () => {
expect(uniqueArray([0, 1, 1])).toStrictEqual([0, 1]);
});
});
- ํ ์คํธ ๊ฒฐ๊ณผ

๋ง๋ฌด๋ฆฌ
์ฃผ๋ง์ ๋ฐ๋ฆฐ ๊ฐ์๋ฅผ ๋ค์ผ๋ ค๊ณ ํ๋๋ฐ ์ฃผ๋ง์ด๋ผ ๊ทธ๋ฐ์ง ์ง์ค์ด ์ ์๋๋ค.
๊ทธ๋๋ ์ฃผ๋ง์๋ ๊ณต๋ถํ๋ค๋ ๊ฑด ๋ฟ๋ฏํ๋ค.
