Node.js Jest

フォーマット

beforeEach(async (): Promise => {
 テスト前の初期化処理
}, 1000);

afterEach(async (): Promise => {
 テスト後の後処理
}, 1000);

describe(‘〜’, () => {
 describe(‘〜’, () => {
  it(‘〜’,() => {
   テストコード
  },1000);

  describe(‘〜’, () => {
   it(‘〜’,() => {
    テストコード
   },1000);
  });
 });
});

アサーション

比較

const actual = test();
expect(actual).toBe(5);

アサーションメソッド 用途 備考
toBe プリミティブ値、オブジェクトの参照先
toEqual オブジェクトの値
toStrictEqual 継承元クラスやundifinedなプロパティ
Called

expect(test).toHaveBeenCalledTimes(1);
expect(test).toHaveBeenCalledWith(引数);
expect(test).not.toHaveBeenCalledWith(引数);

例外

await expect(test()).rejects.toThrow(〜Exception);

Mock

jest.mock(‘〜/Test’, () => {
 return {
  method1: jest.fn(),
  method2: jest.fn(),
 };
});
const test = require(‘〜/Test’);

await test.create.method1(async () => 戻り値);
await test.create.method2(async () => {
 throw new 〜Exception();
});

each

it.each([
 { year: 2024, month: 2, day: 1 },
 { year: 2024, month: 2, day: 28 },
 { year: 2024, month: 2, day: 29 },
])(‘日付チェック’,({ year, month, day }) => {
 テストコード
},1000);

skip

it.skip(‘〜’,() => {
 テストコード
});

describe.skip(‘〜’, () => {
 it(‘〜’,() => {
  テストコード
 },1000);
});