Sou*_*euh 6 currency number-formatting node.js typescript jestjs
鉴于代码:
import { getLocale } from './locale';
export const euro = (priceData: number): string => {
  const priceFormatter = new Intl.NumberFormat(getLocale(), {
    style: 'currency',
    currency: 'EUR',
  });
  return priceFormatter.format(priceData);
}
export default null;
以及相关测试:
import { euro } from './currency';
test('euro', () => {
  expect(euro(42)).toBe("42,00 €");
});
Jest 说:

即使我将 Jest 的预期结果复制粘贴到我的断言中,错误仍然相同。
所以问题是:为什么是地狱?:-D
它不是空格(不同的 ascii 代码/unicode)。根据一个关于字符串比较不正确的笑话问题 Intl.NumberFormat使用了不间断空格。
正如在类似问题的回答中指出的那样:
NumberFormat 使用小的不间断空格 (
\u202f) 作为千位分隔符,并在货币 (\xa0) 之前使用正常的不间断空格。
所以你希望这个测试断言:
"42,00\xa0€"