使用 Jest 进行测试时如何正确设置本地货币?

jot*_*ann 0 javascript testing unit-testing internationalization jestjs

在 Jest 中测试IntL货币转换时,我没有得到正确的转换。

我的测试:

expect(new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(50.00)).toBe('R$ 50,00');
// Expected value to be:
// "R$ 50,00"
// Received:
// "R$ 50.00"
Run Code Online (Sandbox Code Playgroud)

我的命令:

jest --config test/unit/jest.conf.js
Run Code Online (Sandbox Code Playgroud)

如何将正确的语言环境配置设置为 Jest?

jot*_*ann 6

更新从版本 13 开始,完整的 ICU 现在带有 Node.js


原答案:

这里的挑战是设置 Node.js i18n,Jest 是基于 Node.js 的。

因此,在Node.js 官方文档中,我们必须设置 full-icu 参数。

npm install full-icu
NODE_ICU_DATA=node_modules/full-icu jest --config jest.conf.js
Run Code Online (Sandbox Code Playgroud)

现在测试是正确的。

  • 有什么方法可以在 jest 设置文件中执行此操作吗? (2认同)