๊ฐœ๋ฐœ ๊ณต๋ถ€/๋ฐ๋ธŒ์ฝ”์Šค TIL

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240120 - ๊ณ ์–‘์ด ์‚ฌ์ง„ ๊ฒ€์ƒ‰ ์‹ค์Šต 4

๊ฐ€์šค์ด 2024. 1. 22. 20:42

Intro


ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰์ด ์•ˆ๋ผ์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋‹ค.

dependency ์„ค์น˜๊ฐ€ ์ œ๋Œ€๋กœ ์•ˆ๋œ ๊ฒƒ์ด ์›์ธ์ธ ๊ฒƒ ๊ฐ™๋‹ค. node_modules, package-lock.json์„ ์ง€์šฐ๊ณ  ๋…ธ๋“œ ์บ์‰ฌ๋„ ๋‹ค ์ง€์šด ํ›„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋‹ˆ๊นŒ ์ •์ƒ ๋™์ž‘ํ•˜์˜€๋‹ค.

 

 

 

 

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

: ํ…Œ์ŠคํŠธ


 

๐Ÿ‘ฉ‍๐Ÿ’ป ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
Test suite์™€ ๊ฐ test ์˜ ๋ชฉ์ ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๊ธฐ์ˆ ํ•ด์ฃผ์„ธ์š”.
๊ฐ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์— ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์ด๋‚˜, Util ํ•จ์ˆ˜๋“ค์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•, ~~.test.js ์ฒ˜๋Ÿผ ๋‘ ๊ฐœ์˜ ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

jest๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ํ…Œ์ŠคํŒ… ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

์‹คํ–‰ํ•  ๋• jest ๋ช…๋ น์–ด๋กœ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • jset.config.js
module.exports = {
  clearMocks: true,
  collectCoverage: true,
  collectCoverageFrom: [
    "**/utils/*.js" // ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ํŒŒ์ผ
  ],
  transform: {
    '^.+\\.js$': 'babel-jest'
  },
  testEnvironment: "node",
  testMatch: [
    "**/__tests__/**/*.[jt]s?(x)",
    "**/?(*.)+(spec|test).[tj]s?(x)"
  ],
};

 

config ํŒŒ์ผ๋กœ jest ์„ค์ •์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์˜ˆ์‹œ)

  • util/uniqueArray.js
export default function uniqueArray(list) {
  return Array.from(new Set(list));
}

 

  • uniqueArray.test.js
import uniqueArray from '../utils/uniqueArray.js';

describe('uniqueArray.js', () => {
  test('์ค‘๋ณต ์ œ๊ฑฐ ํ™•์ธ', () => {
    expect(uniqueArray([0, 1, 1])).toStrictEqual([0, 1]);
  });
});

 

  • ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

 

 

 

 

 

๋งˆ๋ฌด๋ฆฌ


์ฃผ๋ง์— ๋ฐ€๋ฆฐ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ฃผ๋ง์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ์ง‘์ค‘์ด ์ž˜ ์•ˆ๋๋‹ค.

๊ทธ๋ž˜๋„ ์ฃผ๋ง์—๋„ ๊ณต๋ถ€ํ–ˆ๋‹ค๋Š” ๊ฑด ๋ฟŒ๋“ฏํ•˜๋‹ค.