🤡
Jest で Date を Mock する
結論
mockdate を使いましょう
コード
組み込みの Date オブジェクトも dayjs のようなライブラリも mock に置き換わります 👌
mockdate.test.js
const MockDate = require('mockdate');
const dayjs = require('dayjs');
describe('mockdate', () => {
beforeEach(() => {
MockDate.set(new Date('2000-01-01T00:00:00.000Z'));
});
afterEach(() => {
MockDate.reset();
});
it('should be mock data in the built-in Date Object', () => {
const date = new Date();
expect(date.toISOString()).toBe('2000-01-01T00:00:00.000Z');
});
it('should be mock data in dayjs', () => {
const date = dayjs();
expect(date.toISOString()).toBe('2000-01-01T00:00:00.000Z');
});
});
余談
mockdate は Day.js のテストでも利用しているとのこと。
Discussion