gpt4 book ai didi

reactjs - Jest.js 测试不适用于 Intl.NumberFormat

转载 作者:行者123 更新时间:2023-12-03 13:47:45 25 4
gpt4 key购买 nike

我有一个 Jest 测试,用于检查包含货币的输入字段的值。该数字使用 global.Intl.NumberFormat 进行格式化,如下所示:

const formatter = new global.Intl.NumberFormat(locale, config);

其中区域设置设置为nl-NL并且配置为

{ style: 'decimal',
currency: 'EUR',
minimumFractionDigits: 2,
maximumFractionDigits: 2 }

当我在测试中模拟输入时,我得到了数字的美国格式,即使在我的浏览器中它工作得很好。例如,如果我这样做

input.simulate('change', { target: { value: '5000' } });

我会得到“5,000.00”格式,而对于欧元,我应该得到“5.000,00”。它会进行格式化,但不会针对正确的区域设置。我想知道 Jest 是否在 mock 我的某些东西,如果是,我该如何关闭它?任何线索将不胜感激。

最佳答案

您需要安装https://www.npmjs.com/package/full-icu包括节点或测试环境中的所有区域设置。在浏览器中,所有语言环境都包含在内,但在 Node 中,默认情况下仅加载英语。

更多信息:https://nodejs.org/api/intl.html .

安装包后,调整您的 package.json 脚本:
“测试”:“NODE_ICU_DATA=node_modules/full-icu Jest ”

您可能还需要使用 node --icu-data-dir=node_modules/full-icu file 更改节点执行的脚本,否则 NumberFormat 的行为可能会有所不同客户端和服务器。

关于reactjs - Jest.js 测试不适用于 Intl.NumberFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45098641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com