๊ฐœ์ธ๊ณต๋ถ€/TDD

jest ํ™˜๊ฒฝ์—์„œ import ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ธฐ(typescript)

soon327 2021. 10. 19. 18:29

๐Ÿง ์™œ jestํ™˜๊ฒฝ์—์„œ import๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด์„œ ๋”ฐ๋กœ ์„ค์ •์ด ํ•„์š”ํ• ๊นŒ?

์ด์œ ๋Š” jest๊ฐ€ nodeํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ฆ‰ Webpack๊ฐ™์€ ๋ฒˆ๋“ค๋Ÿฌ์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒŒ์ผ์˜ ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ES6๋‚˜ ๊ธฐํƒ€ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋Š” babel.config.js ๋˜๋Š” babelrc ํŒŒ์ผ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ“ ๋ฐ”๋ฒจ ์„ค์ • ํŒŒ์ผ ์ฐจ์ด
.babelrc : ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ํŒŒ์ผ์—์„œ ํŠน์ • ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ๋ณ€ํ™˜(๊ทœ์น™)์„ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ
babel.config.js : ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์ ํŠธ์— ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉ
babel.config.json : babel.config.js ์‚ฌ์šฉ์— ์˜ํ•œ API ๋…ธ์ถœ๋กœ ์ธํ•ด ์ด์— ๋Œ€ํ•œ ๋…ธ์ถœ ๋ฐฉ์ง€์™€ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ •์  ๊ตฌ์„ฑ ํ˜•ํƒœ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•


๐Ÿ˜Ž ๋ฐ”๋ฒจ ์„ค์ •ํ•˜๊ธฐ

import ์‚ฌ์šฉ ์„ค์ •

์œ„์˜ ์ด์œ ๋กœ ์ปดํŒŒ์ผ์„์œ„ํ•ด ํ”„๋ฆฌ์…‹์„ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
๋จผ์ € jestํ™˜๊ฒฝ์—์„œ babel์„ค์ •์„ ์œ„ํ•ด ๊ณต์‹๋ฌธ์„œ์— ๋”ฐ๋ผ ์•„๋ž˜์˜ ํ”„๋ฆฌ์…‹๋“ค์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

npm install --save-dev babel-jest @babel/core @babel/preset-env

๋ฃจํŠธ์œ„์น˜์— babel.config.jsํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์œ„์˜ @babel/preset-envํ”„๋ฆฌ์…‹์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

//babel.config.js

module.exports = {
  'presets': ['@babel/preset-env'],
};

typescript ์„ค์ •

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋„ ์ปดํŒŒ์ผ๋งํ•˜๊ธฐ์œ„ํ•ด @babel/preset-typescriptํ”„๋ฆฌ์…‹์„ ์„ค์น˜ํ•˜์—ฌ ์„ค์ •ํ•ด์ค€๋‹ค.

npm install --save-dev @babel/preset-typescript
//babel.config.js

module.exports = {
  'presets': ['@babel/preset-env','@babel/preset-typescript'],
};

๐Ÿ™์ฐธ๊ณ