我有一个函数
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')
})
但我一辈子都不明白你怎么能开玩笑地嘲笑窗口导航员。
理想情况下,我希望能够在每个测试中模拟一个新的窗口.导航器.语言的值,这样我就可以测试en-US
,fr
等
任何帮助,以了解你应该如何嘲笑这将是非常感谢。
1条答案
按热度按时间mdfafbf11#
您可以使用Jest模拟
window.navigator.language
,如下所示:我在代码中加入了一些注解以提供帮助。
您可以看到它在here上工作。