Javascript 相同的字符串在笑话中不匹配
以下测试失败:Javascript 相同的字符串在笑话中不匹配,javascript,string,jestjs,Javascript,String,Jestjs,以下测试失败: test('', () => { const result = new Intl.NumberFormat('sv-SE', { style: 'currency', currency: 'SEK', minimumFractionDigits: 0, maximumFractionDigits: 0, }).format(1000) expect(result).toEqual('1 000 kr') }) 它返回以下提示:
test('', () => {
const result = new Intl.NumberFormat('sv-SE', {
style: 'currency',
currency: 'SEK',
minimumFractionDigits: 0,
maximumFractionDigits: 0,
}).format(1000)
expect(result).toEqual('1 000 kr')
})
它返回以下提示:
Expected: "1 000 kr"
Received: "1 000 kr"
我也用.toBe()
尝试了断言,得到了相同的结果
断言上面两个字符串的正确方法是什么?它在输出中返回一个不间断的空格,因此您也需要检查它
expect(result).toEqual('1\xa0000\xa0kr')
尝试使用
encodeURIComponent()
看看有什么不同,或者记录它,或者只是为了让它变得简单,改变测试expect(encodeURIComponent(result)).toEqual(encodeURIComponent('1000 kr'))
我认为这是一个不间断的空间。这太令人困惑了。您知道返回这些字符的原因吗?还有什么方法不让它们返回?(而不是在断言中使用encodeURIComponent
)。实际上,Intl不返回br空格是有意义的,所以最好不要与之对抗。没有人希望在不同的行中看到“1000”和“$”。