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

How to tell Jest that spaces are in fact, spaces?

给定代码:

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 的预期结果复制粘贴到我的断言中,错误仍然相同。

所以问题是:到底为什么? :-D

您希望此测试断言:

"42,00\xa0€"

它不是 space(不同的 ascii 码/unicode)。根据a jest issue about string comparison being incorrect Intl.NumberFormat 使用不间断space.

正如所指出的那样

NumberFormat use small non-breaking space (\u202f) for thousand separator and normal non-breaking space beforece currency (\xa0).