🔖

jestでnew Date()をmockする

2024/05/01に公開

jestを使うときにnew Date()などのタイマーをモックしたい

https://jestjs.io/ja/docs/timer-mocks

jest.useFakeTimers

useFakeTiemersを呼び出すと、setTimeoutやその他タイマー関連の関数をモックすることができる

元に戻すときはuseRealTimersを呼び出す

describe("new Date", () => {
  beforeAll(() => {
    jest.useFakeTimers().setSystemTime(new Date("2023-05-01"));
  });
  it("returns Date('2023-05-01')", () => {
    const actual = new Date();
    const expected = new Date("2023-05-01");
    expect(actual).toEqual(expected);
  });
});

Discussion