【发布时间】:2020-06-26 12:22:15
【问题描述】:
我们在世界各地都有前端工程师,所以当我们运行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);
};
【问题讨论】:
-
由于您只需要针对测试进行调整,因此最好在测试前更改系统区域设置。
-
我认为这没问题。您已经在嘲笑日期本身。另一个常见的场景是模拟
Date.now。所以我认为这毕竟不是一个“创可贴”的解决方案。
标签: javascript jestjs