【发布时间】:2021-08-20 13:59:55
【问题描述】:
我有一个类似的功能
export function formatDate(date: string){
return new Intl.DateTimeFormat(navigator.language).format(new Date(date))
}
我正在尝试用 vanilla jest 编写单元测试(不使用 jsdom 库),但正如您所见,我需要能够模拟 window.navigator.language。
到目前为止,我已经尝试过了,
test('UK date format', () => {
Object.defineProperty(window.navigator, 'language', {value: 'en-GB', configurable: true})
expect(window.navigator.language).toBe('en-GB')
})
但我一生都无法理解您应该如何开玩笑地模拟 window.navigator。
理想情况下,我希望能够在每次测试中为 window.navigator.language 模拟一个新值。所以我可以对en-US、fr 等进行测试
任何帮助理解你应该如何模拟这个将不胜感激。
【问题讨论】:
-
使用全局而不是窗口?不幸的是,没有帮助。
-
我的回答对@ChrisB 有帮助吗?
标签: typescript unit-testing jestjs navigator ts-jest