如何告诉Jest空间实际上是空间?

鉴于代码:

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,00xa0€"


以上是如何告诉Jest空间实际上是空间?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>