【发布时间】:2021-04-22 15:49:28
【问题描述】:
我有一个在日期和时间上失败的开玩笑测试,我认为这是因为运行它的用户的计算机设置不同。这是一个快照测试,它不是一个准确的失败,因为我们想要显示用户拥有的任何时区。
- 11:59:42 AM 7/26/2019
+ 11:59:42 26/07/2019
在我的代码中,有一个 getTimeValue 用于使用 point.timestamp.toDate().toLocaleTimeString() 格式化日期时间。
我尝试了this approach 和this one too,但它根本没有改变输出:
let mockDate;
beforeAll(() => {
mockDate = jest.spyOn(Date.prototype, 'toLocaleTimeString').mockReturnValue('2020-04-15');
});
afterAll(() => {
mockDate.mockRestore();
});
编辑:我意识到这个项目中已经有一个 globalsetup.ts 文件正在处理时区,所以问题实际上出在时间戳(AM、PM)和日期格式上。
【问题讨论】:
-
您是否考虑过仅使用
date-fns来设置时间格式的可配置和确定性方式? -
@ChristianIvicevic 时间格式按照我想要的方式工作,但它只是让测试使用相同的语言环境和时间戳运行。
标签: javascript reactjs jestjs snapshot