[MockDate]テストの時に日付を固定化する方法[JavaScript]
3942 ワード
背景
Jestでテストを書いている時に日付の固定化をしたかったのですが、
今まで以下のような感じで、Date.new
をmock化していましたが、書くのがめんどくさいなって思ってました。
https://qiita.com/bearII/items/d8a3bc0e83b14b36e64e
結論
以下のパッケージが良さげでした。
https://www.npmjs.com/package/mockdate
以下のように1行でモック化できてテストファイルがスッキリします。
before内でモック化し、after内でモックを解除するだけです。
momentもモックできているのが確認できます。
import MockDate from 'mockdate'
import moment from 'moment'
describe('mock date', () => {
beforeEach(() => {
MockDate.set('2000-11-22')
})
afterEach(() => {
MockDate.reset()
})
it('new Dateがmock化されていることを確認', () => {
expect(new Date().getFullYear()).toBe(2000)
expect(new Date().getMonth()).toBe(10)
expect(new Date().getDate()).toBe(22)
})
it('momentがmock化されていることを確認', () => {
expect(moment().format('YYYY-MM-DD')).toBe('2000-11-22')
})
})
Author And Source
この問題について([MockDate]テストの時に日付を固定化する方法[JavaScript]), 我々は、より多くの情報をここで見つけました https://qiita.com/WaiChan/items/c826b5cd40aba0270a1d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .