-
โ๏ธ TDD | Jest ์ฌ์ฉํด๋ณด๊ธฐtdd 2021. 12. 7. 19:42
Jest ์ด๊ธฐ ์ธํ
Jest๋ ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค. babel, typescript, node, react, angular, vue ๋ฑ์ ์ฌ์ฉํ๋ ์ฌ๋ฌ ํ๋ก์ ํธ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
1. installing Jest using npm
npm install --save-dev jest
2. ์์ ํ์ผ sum.js ์์ฑ
//sum.js function sum(a,b){ return a + b; } module.exports = sum;
3. ํ ์คํธ ์์ ํ์ผ sum.test.js ์์ฑ
์ด ๋ __test__ ๋๋ ํ ๋ฆฌ ์์ ์๋ ํ์ผ์ด๋ test.js๋ก ๋๋๋ ํ์ผ๋ค์ ๋ชจ๋ ํ ์คํธ ํ์ผ๋ก ์ธ์ํ๋ค.
const sum = require('./sum'); test('add 1 + 2 to equal 3', () => { expect(sum(1,2))toBe(3); })
4. package.js ํ์ผ์ ์ถ๊ฐํ๊ธฐ
{ ..., "script" : { "test" : "jest" } }
์ด์ ํฐ๋ฏธ๋์์ npm run test ๋ฅผ ์ ๋ ฅํ์ฌ ์คํํ๋ฉด ๋๋ค.
ํ ์คํธ๋ฅผ ์ ์์ ์ผ๋ก ํต๊ณผํ๋ฉด ํฐ๋ฏธ๋์ ์์ ๊ฐ์ด ๋ฌ๋ค.
toBe vs toEqual
toBe๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ฝ๋๋ฅผ ์๋ง๊ฒ ์์ฑํ๋๋ฐ ํ ์คํธ๋ฅผ ํต๊ณผํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
//makeArr.js function makeArr(a,b){ return [a,b]; } module.exports = makeArr;
//makeArr.test.js const { expect, test } = require("@jest/globals"); const makeArr = require("./makeArr"); test("makeArr(1,3) equal [1,3]", () => { expect(makeArr(1,3)).toBe([1,3]); })
a,b๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ก์ ๋ a,b๋ฅผ ๋ฐฐ์ด์ ๋ด๊ณ ๋ฐํํ๊ณ ์๋์ง ํ์ธํ๋ ์ฝ๋์ด๋ค.
makeArr ํจ์๋ [1, 3]์ ์ ๋ฐํํ๋ค. ํ์ง๋ง ์ด ํ ์คํธ ์ผ์ด์ค๋ ํต๊ณผ๋์ง ์์๋ค.
๊ทธ ์ด์ ๋ toBe๋๋ฌธ์ด๋ค. toBe๋ ๊ธฐ๋ณธํ ํ์ (๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฐ ๋ฑ)์ ๊ฒ์ฌํ ๋ ์ฌ์ฉํ๋ค. ๋๋ฌธ์ ์ฐธ์กฐํ ํ์ ์ toBe๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฃผ์๊ฐ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํญ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ํต๊ณผ๋์ง ์๋๋ค.
์ฐธ์กฐํ ํ์ object๋ฅผ ํ ์คํธ ํ ๋๋ toEqual ์ ์ฌ์ฉํด์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด์ผ ํ๋ค.
'tdd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ๏ธ TDD | ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ, ์ ๋ ํ ์คํธ(ํ ์คํธ ์ผ์ด์ค) (0) 2020.11.25