๐ฉ Jest ์ด๊ธฐํ๊ฒฝ ์ค์ ์์์ ์๋ฌ๋ค
ํ ์คํธ์ฝ๋ ์์ฑ์ ์ํ ๊ณต๋ถ ์ค ๋ฐ์ํ jest ์ด๊ธฐํ๊ฒฝ ์ค์ ์์์ ์๋ฌ๋ค์ ๊ธฐ๋กํ๊ธฐ์ํด ๊ธ์ ์์ฑํ๋ค.
Unexpected token "<"
React์ JSX๋ฌธ๋ฒ์ ์ฌ์ฉํ์์ ๋ ๋ฐ์ํ ํ ์คํธ์๋ฌ.
Error
Running coverage on untested files...Failed to collect coverage from /index.js
ERROR: /index.js: Unexpected token (52:2)
50 |
51 | render(
> 52 | <Gallery images={images} />,
| ^
ํด๊ฒฐ๋ฐฉ๋ฒ@babel/preset-react
ํ๋ฆฌ์
์ ์ค์นํ์ฌ ์ค์ ํด์ค๋ค.
// babel.config.js
module.exports = {
'presets': ['@babel/preset-env', '@babel/preset-typescript', '@babel/preset-react'],
...
};
ReferenceError: regeneratorRuntime is not defined
ํ ์คํธ์์ async/await๋ฅผ ์ฌ์ฉํด ๋น๋๊ธฐ ํจ์๋ฅผ ์์ฑํ์์ ๋ ๋ฐ์ํ ์ค๋ฅ
Error
ReferenceError: regeneratorRuntime is not defined
ํด๊ฒฐ๋ฐฉ๋ฒ
๋ฐ๋ฒจ์ด async/await ์ฝ๋๋ฅผ regeneratorRuntime๋ก ๋ณํํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ์ค๋ฅ์ด๋ฏ๋ก regeneratorRuntime์ ๋ชจ๋์ ํฌํจํ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ฌ ์ค์ ํด์ค๋ค.
// babel.config.js
module.exports = {
'presets': ['@babel/preset-env', '@babel/preset-typescript', '@babel/preset-react'],
'plugins': ['@babel/plugin-transform-runtime'],
};
document is not defined
React-Testing-Library
๋ DOMํ๊ฒฝ์์ ์คํ๋์ด์ผ ํ๊ธฐ๋๋ฌธ์ ๋ฐ์ํ ์ค๋ฅ
Error
ReferenceError: document is not defined
9 | const setup = () => {
10 | const [Wrapper, store] = prepareMockReduxWrapper();
> 11 | render(
| ^
12 | <Wrapper>
13 | <TodoForm />
14 | </Wrapper>
ํด๊ฒฐ๋ฐฉ๋ฒ
ํ
์คํธํ๊ฒฝ์ jsdom์ผ๋ก ์ค์ ํด์ค๋ค.
//package.json
"scripts": {
...
"test": "jest --env=jsdom",
...
},
๐ ์ฐธ๊ณ
'๊ฐ์ธ๊ณต๋ถ > TDD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React Testing: Components testing (0) | 2021.11.25 |
---|---|
React Testing: Hooks testing (0) | 2021.11.21 |
React Testing: Reducer testing (with Redux) (0) | 2021.11.17 |
Typescript, Jestํ๊ฒฝ์์ alias์ ์ฉํ๊ธฐ (์ ๋๊ฒฝ๋ก import) (0) | 2021.10.31 |
jest ํ๊ฒฝ์์ import ์ฌ์ฉ ์ค์ ํ๊ธฐ(typescript) (0) | 2021.10.19 |