如何告诉 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
).
给定代码:
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
).