JSON Stringify 函数 returns 相等但 chai 的相等函数 returns 不相等

JSON Stringify function returns equal but chai's equal function returns not equal

在使用 chai 'should' 断言的测试套件中,以下 returns 错误:

some.json.blob.should.equal(some.other.json.blob);

然而,这 returns 正确:

JSON.stringify(some.json.blob).should.equal(JSON.stringify(some.other.json.blob));

我知道 stringify() 函数不是测试 JSON 等价性的最可靠方法,因此我想找到一种无需通过 stringify 即可直接比较 JSON 的方法。如何在不使用 JSON.stringify() 的情况下直接比较对象?

要在不使用 JSON.stringify 的情况下比较 JSON,请在您的 chai 断言中使用深度等于:

some.json.blob.should.deep.equal(some.other.json.blob);

有关 deep.equal 的更多详细信息,请参阅 Chai's documentation