์์ฑํ ํ ์คํธ๋ฅผ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์คํํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 2๊ฐ์ง์ด๋ค.
1. ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ก ์คํํ๊ธฐ
1. package.json์ npm script๋ฅผ ์ถ๊ฐํ๋ค.
{
"script" : {
"test": "jest"
}
}
2. ๋ช ๋ น์ด "npm test" ๋๋ "npm test '๊ฒฝ๋ก'"
2. ์ ์คํธ ๋ฌ๋๋ก ์คํํ๊ธฐ
vscode ์ต์คํ ์ ์ธ "์ ์คํธ ๋ฌ๋"๋ฅผ ๋ค์ด๋ฐ์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ํ๋ํ๋ ์ ๋ ฅํ์ง ์๊ณ ์ํ๋ ์ชฝ๋ง ํ ์คํธ ํ ์ ์๋ค.
ํจ์๋ง๋ค Run | Debug ๊ฐ ๋์ค๋๋ฐ ํด๋ฆญ๋ง ํ๋ฉด ๋๋ค.
https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner
test๋ 2๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ค.
test("add: 1 + 2๋ 3", () => {
expect(add(1, 2)).toBe(3);
});
test(ํ ์คํธ๋ช , ํ ์คํธ ํจ์)
ํ ์คํธํจ์๋ ๊ฒ์ฆ๊ฐ์ด ๊ธฐ๋๊ฐ๊ณผ ์ผ์นํ๋์ง ๊ฒ์ฆํ๋ค.
expect(๊ฒ์ฆ๊ฐ).toBe(๊ธฐ๋๊ฐ)
toBe(๊ธฐ๋๊ฐ)
์ฐ๊ด์ฑ ์๋ ํ ์คํธ๋ค์ ๊ทธ๋ฃนํํ๊ณ ์ถ์๋๋ describe ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
describe("add", () => {
test("1 + 1์ 2", () => {
expect(add(1, 1)).toBe(2);
});
test("1 + 2๋ 3", () => {
expect(add(1, 2)).toBe(3);
});
});
test ํจ์๋ ์ค์ฒฉํ ์ ์๋๋ฐ, decribe ํจ์๋ ์ค์ฒฉ์ด ๊ฐ๋ฅํ๋ค.
describe("์ฌ์น์ฐ์ฐ", () => {
describe("add", () => {
test("1 + 1์ 2", () => {
expect(add(1, 1)).toBe(2);
});
test("1 + 2๋ 3", () => {
expect(add(1, 2)).toBe(3);
});
});
describe("sub", () => {
test("1 - 1์ 0", () => {
expect(sub(1, 1)).toBe(0);
});
test("2 - 1์ 1", () => {
expect(sub(2, 1)).toBe(1);
});
});
});
์์ธ ๋ฐ์ ๊ฒ์ฆํ๋ ค๋ฉด
expect(์์ธ๊ฐ ๋ฐ์ํ๋ ํจ์).toThrow();
๊ทผ๋ฐ ํ์ดํ ํจ์๋ก ์ฌ์ฉํ๋ค.
test("์ฌ๋ฐ๋ฅธ ๋จ์ธ๋ฌธ ์์ฑ๋ฒ", () => {
// ์๋ชป๋ ์์ฑ๋ฒ
expect(add(-10, 110)).toThrow();
// ์ฌ๋ฐ๋ฅธ ์์ฑ๋ฒ
expect(() => add(-10, 110)).toThrow();
});
์๋๋๋ก ์์ธ์ฌ ๋ฐ์ํ๊ณ ์๋๊ฐ์ ๋ํ ๊ด์ ์ผ๋ก ๋ค๊ฐ๊ฐ๊ธฐ!
'๐ฅFrontEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
jest ์ฉ๋๋ณ ๋งค์ฒ ์์๋ณด๊ธฐ (0) | 2024.09.21 |
---|---|
IntersectionObserver ๋ก ์คํฌ๋กค ์ด๋ฒคํธ (0) | 2024.08.28 |
์น ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋๊ตฌ ์ถ์ฒ (0) | 2024.07.27 |
jest, beforeAll, afterAll (0) | 2023.05.01 |
jest ๊ธฐ๋ณธ ๊ณต๋ถ (0) | 2023.04.28 |