toBe() 字符串比较失败

toBe() failing in string comparision

我正在做一个测试,我有并期望像 expect(getHighChartDataLabel(container).textContent.trim()).toBe('AFN 4.97M') 这样的块,但测试失败了,即使我得到了相同的值。

任何人都可以帮助我哪里错了吗?

根据屏幕截图不可能说出来,但作为弄清楚它们有何不同的一种方式 - 我猜其中包含一个不可打印的字符,或者一个看起来相同但实际上不同的字符 - 例如

console.log('A' === 'Α') // 'A' === "\u0391"

let str = 'a\x08bc';
console.log(str);
console.log('abc');
console.log(str === 'abc');

我会尝试比较它们的长度,然后逐个字符比较:

const text = getHighchartDataLabel(container).textContent.trim();
const expected = 'AFN 4.97M';
expect(text.length).toBe(expected.length);
for (let i = 0; i < text.length; i++) {
    expect(text[i]).toBe(expected[i]);
}