我具有util函数,该函数以特定的日期格式解析给定的日期(即'2019-01-28'),然后使用{
"bindings": [
{
//...
"direction": "in"
},
{
"name": "outputSbQueue1",
"type": "serviceBus",
"queueName": "testqueue1",
"connection": "MyServiceBusConnection",
"direction": "out"
},
{
"name": "outputSbQueue2",
"type": "serviceBus",
"queueName": "testqueue2",
"connection": "MyServiceBusConnection",
"direction": "out"
}
],
"disabled": false
}
检索当天的开始并将其转换为ISO日期格式:>
dates.js
momentJS
我想使用import moment from 'moment'
export const getApiDateFormat = (date, dateFormat = getLocaleDateString()) =>
moment(date, dateFormat)
.startOf('day')
.toISOString()
测试此功能,并为Jest
设置特定时区,以独立于我的位置使用这些测试。
目前,我有:
dates.test.js
moment
因为我当前位于const formattedDate = '2019-01-27T23:00:00.000Z'
test('date in russian format - 28.01.2019', () => {
const russianDateFormat = 'DD.MM.YYYY'
expect(getApiDateFormat('28.01.2019', russianDateFormat)).toEqual(
formattedDate,
)
})
时区。如何使该测试位置独立?
我尝试使用Europe/Warsaw
将jest.mock
所使用的moment
替换为getApiDateFormat
,但是,我的所有尝试都失败了,因为它们对{{ 1}}库,由moment.tz.setDefault("America/New_York")
导入。
如何解决此类问题并进行正确测试?
答案 0 :(得分:3)
使用vue-router
环境变量...
您可以在TZ
之前添加前缀,以便所有计算机在相同的时区运行,如下所示:
package.json
答案 1 :(得分:1)
这对我有用
"scripts": {
"test": "TZ=UTC jest",
"coverage": "TZ=UTC jest --coverage"
}
但是请确保在您的npm依赖项中安装了“ moment-timezone”:“ ^ 0.5.27”