moment()
またはmoment().format
関数をモックできません。 currentDateMoment
とcurrentDateFormatted
が次のように設定されている状態があります。
currentDateMoment: moment() //2019-04-23T17:45:26.339Z currentDateFormatted: moment().format('MM-DD-YYYY').valueOf() //"04-23-2019"
特定の日付を返すためにスナップショットテストでmoment()
とmoment().format
の両方をモックしようとしましたが、できませんでした。以下で試してみました。
jest.mock('moment', () => () => '2018–01–30T12:34:56+00:00');
jest.mock('moment', () => ({
constructor: () => '2018–01–30T12:34:56+00:00'
}));
jest.mock('moment', () => () => ({ format: () => '01–30-2018' }));
モーメントタイムゾーンも使用していたため、まだエラーが発生していました。それで、これを修正するために私がしたことは次のとおりです:
let diffMins = updateThreshold + 1;
jest.mock('moment', () => {
const mMoment = {
diff: jest.fn(() => diffMins),
};
const fn = jest.fn(() => mMoment);
fn.version = '2.24';
fn.tz = jest.fn();
fn.fn = jest.fn();
return fn;
});