3. Jest

Jest ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” matchers(์ผ์น˜์ž) ํ•™์Šต

Jest๋Š” ๋‹ค์–‘ํ•œ matcher(์ผ์น˜์ž)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐ’์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

tobe

๊ฐ’์ด ๊ฐ™์€์ง€ ํ™•์ธํ•œ๋‹ค.

test('two plus two is four', () => {
  expect(2 + 2).toBe(4);
});

toEqual

toEqual ๋Š” ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ™•์ธํ•œ๋‹ค.

๋‹จ, toEqual์€ undefined ํ”„๋กœํผํ‹ฐ, ๋ฐฐ์—ด, ํ•ญ๋ชฉ, ๊ฐ์ฒด์˜ ํƒ€์ž… ๋ถˆ์ผ์น˜์— ๋Œ€ํ•œ ๊ฐ์ฒด์˜ ํ‚ค๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด toStrictEqual ์„ ์‚ฌ์šฉํ•œ๋‹ค.

test('object assignment', () => {
  const data1 = { one: 1 };
  expect(data1).toEqual({ one: 1 });

  const data2 = { one: 123 };
  expect(data2).toEqual({ one: 123 }); // ํ†ต๊ณผ๊ฐ€ ๋œ๋‹ค.
  expect(data2).toStrictEqual({ one: '123' }); // ํ†ต๊ณผ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.
});

Truthiness ๊ฒ€์ฆ

๋•Œ๋กœ๋Š” ํ…Œ์ŠคํŠธ์—์„œ undefined, null, false ๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ๋•Œ๋„ ์žˆ๋‹ค. ์ด๋“ค์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” helper ์ผ์น˜์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • toBeNull: null ๊ฐ’ ํ™•์ธ

  • toBeUndefined: undefined ํ™•์ธ

  • toBeDefined: undefined ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ํ™•์ธ

  • toBeTruthy: if ๋ฌธ์ด true๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ๊ณผ ์ผ์น˜

  • toBeFalsy: if ๋ฌธ์ด false๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ๊ณผ ์ผ์น˜

Numbers ๊ฒ€์ฆ

๊ทธ๋Ÿฌ๋‚˜, ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ™์Œ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜์˜ฌ๋ฆผ ์˜ค๋ฅ˜์— ์˜์กดํ•˜์ง€ ์•Š๋„๋ก toEqual์„ ๋Œ€์‹ ํ•˜์—ฌ toBeCloseTo๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

String ๊ฐ’ ๊ฒ€์ฆ

Arrays and iterables

๋ฐฐ์—ด์ด๋‚˜ ์ดํ„ฐ๋Ÿฌ๋ธ”์— ํŠน์ • ํ•ญ๋ชฉ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” toContain์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Exceptions

ํŠน์ • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด toThrow๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋น„๋™๊ธฐ ํ…Œ์ŠคํŠธ

resolves ์™€ rejects ๋ฅผ ํ™œ์šฉํ•˜๊ณ , ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜์— async, await ๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.

ING

Last updated