我们在世界各地都有前端工程师,因此当我们运行Date.prototype.toLocaleString
时,会得到不同的结果。有时,这些差异会在Jest测试中显示出来。如果其他国家/地区的某人运行Jest测试,则可能由于toLocaleString
而失败。有什么方法可以强制Jest使用特定的语言环境?
作为创可贴的解决方案,我在失败的测试中添加了以下内容:
const toLocaleString = Date.prototype.toLocaleString;
// eslint-disable-next-line no-extend-native
Date.prototype.toLocaleString = function(locale = 'en-US', ...args) {
return toLocaleString.call(this, locale, ...args);
};
答案 0 :(得分:1)
您应该下载完整icu节点软件包:
npm i full-icu --save
并像这样运行测试:
NODE_ICU_DATA=node_modules/full-icu jest
因此,如果您运行npm脚本,则package.json将如下所示:
"scripts": {
"dev": "...",
"test": "NODE_ICU_DATA=node_modules/full-icu jest",
},
如果您使用的是Jest VSCode扩展名,则必须更改此配置:
`"jest.pathToJest": "npm run test --"`