[JEST λ‚˜μ•„κ°€κΈ° 1] πŸ”ŽMethodsπŸ”Ž

JerryΒ·2023λ…„ 8μ›” 8일

Jest

λͺ©λ‘ 보기
8/10
post-thumbnail

Globals

ν…ŒμŠ€νŠΈ νŒŒμΌμ—μ„œ JestλŠ” μ΄λŸ¬ν•œ 각 λ©”μ†Œλ“œμ™€ 객체λ₯Ό μ „μ—­ ν™˜κ²½μ— λ„£λŠ”λ‹€. 이것듀을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 아무것도 μš”κ΅¬ν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ ν•„μš”κ°€ μ—†λ‹€. κ·ΈλŸ¬λ‚˜ λͺ…μ‹œμ μœΌλ‘œ κ°€μ Έμ˜€λŠ” 것을 μ„ ν˜Έν•˜λŠ” 경우 λ‹€μŒκ³Ό 같이 @jest/globalsμ—μ„œ κ°€μ Έμ˜¬ 수 μžˆλ‹€.

import {expect, jest, test} from '@jest/globals';

Methods

describe(name, fn)

describe(name, fn)은 μ—¬λŸ¬ κ΄€λ ¨ ν…ŒμŠ€νŠΈλ₯Ό ν•¨κ»˜ κ·Έλ£Ήν™”ν•˜λŠ” 블둝을 μƒμ„±ν•œλ‹€. 예λ₯Ό λ“€μ–΄ λ§›μžˆμ§€λ§Œ 신맛은 λ‚˜μ§€ μ•ŠλŠ” myBeverage 객체가 μžˆλŠ” 경우 λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈν•  수 μžˆλ‹€.

const myBeverage = {
  delicious: true,
  sour: false,
};

describe('my beverage', () => {
  test('is delicious', () => {
    expect(myBeverage.delicious).toBeTruthy();
  });

  test('is not sour', () => {
    expect(myBeverage.sour).toBeFalsy();
  });
});

describe은 ν•„μˆ˜ 사항이 μ•„λ‹ˆλ‹€. μ΅œμƒμœ„ μˆ˜μ€€(top level)μ—μ„œ 직접 ν…ŒμŠ€νŠΈ 블둝을 μž‘μ„±ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ ν…ŒμŠ€νŠΈλ₯Ό 그룹으둜 κ΅¬μ„±ν•˜λ €λŠ” 겨웅 νŽΈλ¦¬ν•˜λ‹€.
λ˜ν•œ ν…ŒμŠ€νŠΈ 계측이 μžˆλŠ” 경우 describe 블둝을 쀑첩할 μˆ˜λ„ μžˆλ‹€.

class CustomError extends Error {
  constructor(message) {
    super(message);
    this.name = "CustomError";
  }
}

const binaryStringToNumber = (binString) => {
  if (!/^[01]+$/.test(binString)) {
    throw new CustomError("Not a binary number.");
  }
  return parseInt(binString, 2);
};

describe("binaryStringToNumber", () => {
  describe("given an invalid binary string", () => {
    test("composed of non-numbers throws CustomError", () => {
      // ν•˜λŠ” 김에 toThrow λ³΅μŠ΅λ„ ν•˜μž
      expect(() => binaryStringToNumber("abc")).toThrow();
      expect(() => binaryStringToNumber("abc")).toThrow(Error);
      expect(() => binaryStringToNumber("abc")).toThrow(CustomError);
      expect(() => binaryStringToNumber("abc")).toThrow("Not a");
      expect(() => binaryStringToNumber("abc")).toThrow(/Not a binary/);
      expect(() => binaryStringToNumber("abc")).toThrow(
        /^Not a binary number.$/ // μ΄λ ‡κ²Œ μ •κ·œν‘œν˜„μ‹μ„ μ“°λ©΄ μ •ν™•νžˆ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μΌμΉ˜μ‹œμΌœμ•Ό ν•œλ‹€.
      );
    });

    test("with extra whitespace throws CustomError", () => {
      expect(() => binaryStringToNumber("  100")).toThrow(CustomError);
    });
  });

  describe("given a valid binary string", () => {
    test("returns the correct number", () => {
      expect(binaryStringToNumber("100")).toBe(4);
    });
  });
});

이 글은 μ•„λž˜ μ‚¬μ΄νŠΈλ₯Ό μ°Έκ³ ν•˜μ—¬ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€πŸ™‚
https://jestjs.io/docs/api

profile
I'm jerry

0개의 λŒ“κΈ€